Почему я получаю только один номер из этого скрипта? - PullRequest
0 голосов
/ 02 июня 2010

В чем ошибка в следующем скрипте?

#! /bin/tcsh -f
cut -d" " -f2 ${1} | ./rankHelper

Скрипт rankHelper:

#! /bin/tcsh -f
set line = ($<)
while(${#line} != 0)
cat $line
set line = ($<)
end

Файл lines, из которого были отправлены данные:

053-3787837 038280083
052-3436363 012345678 
053-3232287 038280083 
054-3923898 033333333 
052-2222333 012345678 
052-1111111 012390387 

Я запускаю его, используя:

> ./rank lines

Почему я получаю только следующий номер?

038280083

Я думал cut должен вырезать два поля из всех рядов. Я ожидаю увидеть второе поле из всех строк из строк:

dos2unix: converting file rank to UNIX format ...
 > ./rank lines
 > 

 > cat -A rank
#! /bin/tcsh -f$
cut -d" " -f2 ${1} | ./rankHelper


> cat -A rankHelper
#! /bin/tcsh -f$
set line = ($<)$
$
$
while(${#line} != 0)$
$
echo $line$
set line = ($<)$
end

Я работаю над C shell .

1 Ответ

1 голос
/ 02 июня 2010

Я изменил rank на это:

#! /bin/tcsh -f
cut -d" " -f2 ${1}

и побежал

> ./rank lines

и у меня это сработало.

Редактировать: Если вы все еще хотите по какой-то причине использовать rankHelper (домашнее задание?), Попробуйте изменить в rankHelper команду

cat $line

до

echo $line
...