2016-07-27 179 views
-1

我試圖運行下面的代碼,它得到我的錯誤:第4,5,6行找不到命令。試圖找到類似的問題的答案,但我不知道如何找出運行此腳本的集羣的操作系統版本。林不知道是否有任何問題,第一行或第4,5,6行。誰能幫忙?bash腳本:命令沒有找到

#!/bin/bash 
for i in 02 03 04 05 06 07 09 10 11 12 13 14 15 16 17 20 21 22 23 24 25; do 
x=grep $i sphnum.txt |cut -c5-6 
y=grep $i sphnum.txt |cut -c8-9 
z=echo $i'.ala.'$x'.sph '$i'.ala.'$y'.sph' 
echo $z 
done 
+0

最後一個變量z用於將這些字符串轉換爲字符串。 – SIMONSON92

+0

用'x = $(grep $ i sphnum.txt | cut -c5-6)'替換'x = grep $ i sphnum.txt | cut -c5-6''。對於其他兩條線也是如此。 – yellowantphil

+0

您正在嘗試運行名爲($ value)的命令。 '$(...)'使bash運行一個子命令。請參閱bash手冊頁的「Command Substituion」部分。 – yellowantphil

回答

0

正如其他人說你需要從命令中捕獲輸出。

z=echo foo -bash: foo: command not found

是不一樣的

z=$(echo foo)

在第一個它相當於

z=echo foo

其認爲foo這是無效的命令。

z=$(echo foo)但是意味着執行echo foo並將輸出捕獲到z

您的所有命令都無法執行此操作。