прочитать каждую строку файла с помощью awk и сохранить в массив

Я работаю над ksh в Sun Solaris. у меня есть файл, содержащий только одно слово в качестве имен заданий в строке. хотите прочитать все задания из файла и выполнить их одно за другим в заданном порядке. как это сделать в кш. приведенный ниже код отлично работает, если он запущен в командной строке. когда я пытаюсь запустить его через сценарий оболочки, он выдает ошибку.

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

person atul    schedule 28.03.2013    source источник


Ответы (1)


Сообщение приходит из оболочки Bourne, поэтому, вероятно, скрипт почему-то не вызывается должным образом. Вам нужно будет вставить шебанг в качестве первой строки в скрипт:

#!/bin/ksh

и сделать его исполняемым и выполнить его:

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

или вам нужно будет вызвать скрипт следующим образом:

ksh /path/to/script
person Scrutinizer    schedule 30.03.2013