2015-07-01 64 views
1

這裏有一個MWE:AWK不被某些命令後認可

#!/bin/bash 
INFILE=$1 
echo `echo $INFILE | awk '{print(substr($0,8,3))}'` 

PATH=${INFILE%/*} 
echo `echo $INFILE | awk '{print(substr($0,8,3))}'` 
exit 

顯然,第一awk命令運行良好,但在第二個命令bash不承認awk了! 這是我所得到的運行它(假設f_mwe.sh是文件的名稱):

$ ./f_mwe.sh /home/something/path/this_is_the_name.txt 
ome 
./f_mwe.sh: line 31: awk: command not found 

$ 

我試圖在一開始也定義/bin/shksh但得到了同樣的結果。我不知道是什麼原因造成的。

任何幫助表示讚賞。

+2

使用'ALL_CAPS'變量通常是不鼓勵的,因爲它們被保留用於shell /內部使用。 –

回答

4

你正在覆蓋PATH變量,而不是追加到它我相信。您應該追加到PATH變量。

+1

路徑!我完全忘了'$ PATH'是一個已經定義好的變量!多麼愚蠢的錯誤。謝謝! – TomCho

+1

新鮮的眼睛從不傷害任何人。快樂編程! – ojblass