xargs我已经拥有完整的命令集

时间:2010-03-10 03:51:07

标签: shell xargs

我有这样的文件。

rm a.txt
mkdir foo
cp a.doc docs

我习惯了xargs,但是后面的命令没有做任何事情。

cat commands.txt | xargs -l1

4 个答案:

答案 0 :(得分:1)

你做错了!如果您的文件都是shell命令,请将其视为shell脚本。

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

然后在命令行上chmod u+x commands.txt

./commands.txt

shell脚本的“defacto”命名约定以扩展名.sh结束,尽管它可以是任何内容。因此,请尝试将脚本命名为“.sh”扩展名

答案 1 :(得分:0)

嗯:

  

$ mv commands.txt commands.sh

     

$ chmod + x command.sh

     

$ ./command.sh

答案 2 :(得分:0)

如果您不需要使其可执行,请在当前shell中获取它:

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

csh / ...:source commands.txt

答案 3 :(得分:-1)

如果命令不在文件中但是程序的输出可能会使用GNU Parallel http://www.gnu.org/software/parallel/

cat commands.txt | parallel -j1

如果命令可以并行运行(即不依赖于彼此完成),你甚至可以这样做:

cat commands.txt | parallel