bashスクリプト - 2つの文字列を連結しようとしています - 失敗しました。

bashスクリプト - 2つの文字列を連結しようとしています - 失敗しました。

現在のフォルダ名を使用し、最後に_defaultサフィックスを追加するスクリプトを作成したいと思います。

これまで私のスクリプトは次のようになりました。

#!/usr/bin/env bash
baseDir=pwd | awk -F/ '{print $NF}'
networkName=$(baseDir)$('_default')

echo $networkName

これを実行すると、次のエラーが発生します。

codebrews@mymachine:/docker-local$ ./test.sh
./test.sh: line 3: baseDir: command not found
./test.sh: line 3: _default: command not found

明らかに何か簡単で混乱しているようですが、見えません。ありがとうございます。

編集1

私もこれを試しました:

#!/usr/bin/env bash
baseDir=pwd | awk -F/ '{print $NF}'
networkName=$($baseDir)_default
echo $networkName

しかし、これはただ戻ってきます。

_基本

今問題はbaseedDirが空であるということです。コマンドラインで "pwd | awk -F/ '{print $NF}'" を実行すると動作します。しかし、明らかにこのスクリプトファイルでは機能しません。

答え1

baseDir=pwd | awk -F/ '{print $NF}'

baseDirこのコマンドは、文字列に変数を代入し、pwdその代入の出力(つまり何もなし)にパイプし、awk何もしません。

networkName=$(baseDir)$('_default')

コマンドは、変数をnetworkNameコマンドの出力baseDir(存在しないので最初のエラー)に割り当てようとし、それをコマンドの出力'_default')(存在しないので2番目のエラー)に接続します。

echo $networkName

前のコマンドは効果がないので、終了する改行文字以外は何も出力されません。

私の考えであなたが探しているのはこれです:

#!/usr/bin/env bash
baseDir="$(pwd | awk -F/ '{print $NF}')"
networkName="${baseDir}_default"

echo "$networkName"

関連情報