【发布时间】:2012-08-08 18:06:06
【问题描述】:
我正在寻找一个 unix shell 命令来附加文件的内容作为另一个 shell 命令的参数。例如:
command << commandArguments.txt
【问题讨论】:
我正在寻找一个 unix shell 命令来附加文件的内容作为另一个 shell 命令的参数。例如:
command << commandArguments.txt
【问题讨论】:
command `cat commandArguments.txt`
使用反引号将使用封闭命令的结果作为外部命令中的文字
【讨论】:
xargs 采用其标准并将其格式化为 shell 命令的位置参数。它最初旨在处理较短的命令行限制,但它也可用于其他目的。
例如,在最后一分钟内,我使用它并行连接到 10 个服务器并检查它们的正常运行时间:
echo server{1..10} | tr ' ' '\n' | xargs -n 1 -P 50 -I ^ ssh ^ uptime
这个命令管道的一些有趣的方面:
tr 将每个名称放在单独的行中。这是因为 xargs 需要以行分隔的输入-n 选项控制每次命令调用使用的传入行数。 -n 1 表示为每个传入行创建一个新的 ssh 进程。-I,可以指定一个标记(^),该标记将被替换为参数。-P 控制同时运行的子进程的数量,极大地拓宽了有趣的可能性空间..【讨论】:
xargs 是专门为此而构建的:
cat commandArguments.txt | xargs mycommand
如果文件中有多行,您可以使用xargs -L1 -P10 一次并行运行十个命令副本。
【讨论】: