2013-03-28 73 views
0

我正在使用Sun Solaris中的ksh。我有一个文件只有一个单词作为每行的作业名称。想要从文件中读取所有作业,并在给定的orde中逐个执行它们。如何在ksh中做到这一点。如果在命令提示符下触发,下面的代码工作正常。当我尝试通过shell脚本运行它时会出现错误。使用awk读取文件的每一行并将其存储到数组中

i=0;nawk '{print $1}' input.txt | while read -r r; 
do 
a[i]="$r"; 
echo "${a[++i]}"; 
done 

错误:

i=0 
+ read -r r 
+ nawk {print $1} input.txt 
test2.ksh: -r: is not an identifier 

回答

0

该消息是从Bourne shell的到来,所以可能以某种方式脚本不会被调用以正确的方式。您将需要插入一个家当作为脚本的第一行:

#!/bin/ksh 

,并使其可执行文件并执行它:

chmod +x /path/to/script 
/path/to/script 

,或者你就需要调用的脚本是这样的:

ksh /path/to/script 
相关问题