鉴于我使用这个命令:
outputStuff.sh | awk -F"-" '{print $5"-"$6}' | xargs someTool (XARGS OUTPUT HERE) --someCommandLineSwitchHere
但是我需要在 xargs 输出后提供命令行开关吗?有人解决过这个问题吗?
答案1
因此该标志用于someTool
但必须位于输入文件之后...使用子 shell 可以为您提供各种灵活性:
xargs sh -c 'someTool "$@" --someCommandLineSwitchHere' someTool
处理后,xargs
这实际上变成了
xargs sh -c 'someTool "$@" --someCommandLineSwitchHere' someTool item1 item2 ... itemN
...单引号字符串之后命令行上的所有内容都成为sh
(位置参数)的输入参数。这些开始于$0
和 因为$0
通常是我们刚刚使用的正在运行的命令someTool
(尽管这里允许任何内容)。剩下的所有内容都由xargs
和 加上您的正常位置参数:$1
、$2
等。