awk 命令返回在 Ubuntu 桌面上找不到,但在 Centos 上運作良好

awk 命令返回在 Ubuntu 桌面上找不到,但在 Centos 上運作良好

我創建 test.sh 來讀取包含內容的文件

item1:return1
item2:return2
...
item10:return10

測試.sh內容

VAR1=$1
VAR2= `grep "^${VAR1}:" /home/path/file | awk '{print $2;}'`

echo "${VAR2}";

運行測試

sh test.sh item1

返回

: not found test.sh: 
: not found test.sh: 

當我在 Centos 上運行相同的內容時。返回

return1

awk 命令有什麼問題?

答案1

awk 命令沒有任何問題。test.sh如訊息所示,無法找到您的問題。 CentOS 可能會將您的路徑設定為 PATH 變數。

運行它sh ./test.sh item1(我假設 test.sh 在您當前的目錄中)

編輯:我應該更好地關注腳本,:在 grep 中是問題這有效

VAR1=$1
VAR2=`grep "${VAR1}\:" file | awk '{print $2}'`
echo "${VAR2}";

但是,awk 預設不識別:為分隔符,我必須使用

item1: return1
item2: return2

我不知道如果沒有這個改變它如何在伺服器或 centos 上工作

相關內容