Для самого основного 'foreach' существует xargs
, это читает некоторые параметры, и добавьте их к некоторой другой командной строке. Например, можно попробовать:
> cut -d: -f1 /etc/passwd | xargs -n1 echo user:
Обратите внимание, что необходимо передать a -d'\n'
аргумент xargs
в случае имена пользователей могли содержать пробелы. Добавлять все ¹ параметры к тому же использованию команды:
> cut -d: -f1 /etc/passwd | xargs echo users:
Для более общих циклов можно использовать это:
> cut -d: -f1 /etc/passwd | while read i; do echo $i; done
На этот раз, $i
может быть помещен куда угодно в последовательности одной или нескольких команд. Исходные данные читаются одна строка за один раз и хранятся в переменной i
. Также возможно разделить ² строка и сохранить его в нескольких переменных:
> cut -d: -f1,6 /etc/passwd --output-delimiter=' ' | \
while read i j; do echo home directory of user $i is $j; done
Обратите внимание, что для циклов по необработанным именам файлов, следующее лучше (см. комментарии):
> for i in *.txt; do echo file: $i; done
—
1. Более точно: столько, сколько система позволит.
2. Согласно IFS
переменная
Можно спросить gcc
где это будет искать те двоичные файлы: (это работает над gcc-4.6.3 и CentOS 5.3 gcc-4.1.3 FC16, таким образом, он должен работать с Вашими 4.2),
gcc -print-search-dirs
Можно установить путь поиска через GCC_EXEC_PREFIX
переменная среды.