現在のフォルダ名を使用し、最後に_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"