Чтобы выйти из цикла each()
, вы должны:
return false;
Чтобы ваша кнопка могла установить переменную при нажатии, чтобы каждый цикл проверял каждый проход, а затем возвращает false, когда переменная установлена.
параметр '-n' для xargs указывает, сколько аргументов использовать для каждой команды:
$ xargs -n2 < arglist echo cp
cp src/file1 dst/file1
cp src/file2 dst/file2
cp src/file3 dst/file3
Использование read
(это предполагает, что любые пробелы в именах файлов в arglist
экранируются):
while read src dst; do cp "$src" "$dst"; done < argslist
Если аргументы в файле в правильном порядке и имена файлов с пробелами указаны в кавычках, тогда это также будет работать:
while read args; do cp $args; done < argslist
You can use pipe (|) :
cat file | echo
or input redirection (<)
cat < file
or xargs
xargs sh -c 'emacs "$@" < /dev/tty' emacs
Then you may use awk to get arguments:
cat file | awk '{ print $1; }'
Hope this helps..
, если ваша цель - просто скопировать эти файлы в список
$ awk '{cmd="cp "$0;system(cmd)}' file
Используйте для цикла
с IFS
(Внутренний разделитель полей), установленным на новая строка
OldIFS=$IFS # Save IFS
$IFS=$'\n' # Set IFS to new line
for EachLine in `cat arglist"`; do
Command="cp $Each"
`$Command`;
done
IFS=$OldIFS