xargs У меня уже есть полный набор команд - PullRequest
0 голосов
/ 10 марта 2010

У меня есть такой файл.

rm a.txt
mkdir foo
cp a.doc docs

Я привык к xargs, но следующая команда ничего не делает.

cat commands.txt | xargs -l1

Ответы [ 4 ]

1 голос
/ 10 марта 2010

вы делаете это неправильно! если в вашем файле все команды оболочки, обрабатывайте его как скрипт оболочки.

#!/bin/bash
rm a.txt
mkdir foo
cp a.doc docs

затем в командной строке, chmod u+x commands.txt

./commands.txt

соглашение об именовании "defacto" для сценария оболочки заканчивается расширением .sh, хотя оно может быть любым Поэтому попробуйте назвать ваш скрипт как расширение ".sh"

0 голосов
/ 10 июня 2010

Если ваши команды находятся не в файле, а в выходных данных программы, вы можете использовать GNU Parallel http://www.gnu.org/software/parallel/:

cat commands.txt | parallel -j1

Если команды могут выполняться параллельно (т. Е. Они не зависят от того, что завершено), вы даже можете сделать:

cat commands.txt | parallel
0 голосов
/ 10 марта 2010

Если вам не нужно делать его исполняемым, поставьте его в вашей текущей оболочке:

bash / ksh / ...: . commands.txt

csh / ...: source commands.txt

0 голосов
/ 10 марта 2010

Erm:

$ mv commands.txt commands.sh

$ chmod + x command.sh

$ ./command.sh

...