附加文件的内容作为参数用于UNIX外壳命令(appending file contents as p

2019-09-21 03:40发布

我在寻找一个UNIX shell命令来添加一个文件作为另一个shell命令的参数的内容。 例如:

command << commandArguments.txt

Answer 1:

xargs的就是专门为这个:

cat commandArguments.txt | xargs mycommand

如果您在文件中都有多条线路,则可以使用xargs -L1 -P10在同一时刻运行命令的十份,在并行。



Answer 2:

xargs的采取它的标准和格式它作为外壳命令位置参数。 它最初是为了应对短期的命令行的限制,但它是用于其他目的也是有用的。

例如,在最后一分钟内,我用它连接到并联10台服务器,并检查他们的正常运行时间:

echo server{1..10} | tr ' ' '\n' | xargs -n 1 -P 50 -I ^ ssh ^ uptime

此命令管道的一些有趣的方面:

  • 该服务器的名称连接到从进入管取
  • tr是需要把每个名称各占一行。 这是因为xargs预期线分隔输入
  • 所述-n选项控制许多进线是如何每命令调用使用。 -n 1说,做一个新ssh进程为每个到来的线。
  • 默认情况下,参数附加到命令的末尾。 与-I ,可以指定一个令牌( ^将与参数代替被替换)。
  • -P控制多少子进程同时运行,极大地拓宽了有趣的可能性的空间..


Answer 3:

command `cat commandArguments.txt`

使用反引号将使用封闭命令的结果作为文字在外部命令



文章来源: appending file contents as parameter for unix shell command
标签: bash shell unix