2016-07-27 134 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

您的所有命令都无法执行此操作。