0

我正在 Sun Solaris 中研究 ksh。我有一个文件,每行只有一个单词作为作业名称。想要从文件中读取所有作业并按照给定的顺序一一执行。如何在 ksh 中做到这一点。如果在命令提示符下触发以下代码,则可以正常工作。当我尝试通过 shell 脚本运行它时,它给出了错误。

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
4

1 回答 1

0

该消息来自 Bourne shell,因此可能以某种方式没有以正确的方式调用该脚本。您需要在脚本的第一行插入一个 shebang:

#!/bin/ksh

并使其可执行并执行它:

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

或者您需要像这样调用脚本:

ksh /path/to/script
于 2013-03-30T16:28:35.430 回答