我想編寫一個腳本,該腳本採用當前資料夾名稱並在末尾添加後綴 _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
但這只是返回
_預設
我現在發現問題是 basedDir 為空。當我在命令列上執行“pwd | awk -F/ '{print $NF}'”時,它可以工作。但它顯然在這個腳本文件中不起作用。
答案1
baseDir=pwd | awk -F/ '{print $NF}'
該命令會將變數指派baseDir
給字串pwd
,然後將該指派的輸出(即無任何內容)透過管道傳輸到awk
,這將不執行任何操作。
networkName=$(baseDir)$('_default')
該命令將嘗試將變數分配networkName
給命令的輸出baseDir
(不存在,因此第一個錯誤)並連接到命令的輸出'_default')
(不存在,因此第二個錯誤)。
echo $networkName
因為前面的命令不起作用,所以除了終止換行符之外不會輸出任何內容。
我想你正在尋找的是這樣的:
#!/usr/bin/env bash
baseDir="$(pwd | awk -F/ '{print $NF}')"
networkName="${baseDir}_default"
echo "$networkName"