Непонятная ошибка выполнения команд в foreach в Csh - PullRequest
0 голосов
/ 12 октября 2011

Программа очень проста:

#!/bin/csh -f
foreach path ( fileA.txt fileB.txt )
    wc -l $path
    grep "test" $path
end

Тем не менее, вывод:

fileA.txt/wc: Not a directory.
fileA.txt/grep: Not a directory.
fileB.txt/wc: Not a directory.
fileB.txt/grep: Not a directory.

Так что же не так с кодом и как правильно это сделать?

1 Ответ

0 голосов
/ 02 марта 2012

Никогда не следует использовать путь в качестве универсального имени переменной в C-Shell, поскольку она содержит текущие каталоги поиска для оболочки, чтобы найти командные программы.

Это будет работать намного лучше, чем ваш код:

#!/bin/csh -f
foreach mypath ( fileA.txt fileB.txt )
    wc -l $mypath
    grep "test" $mypath
end
...