bash 腳本 - 嘗試連接兩個字串 - 失敗

bash 腳本 - 嘗試連接兩個字串 - 失敗

我想編寫一個腳本,該腳本採用當前資料夾名稱並在末尾添加後綴 _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"

相關內容