【发布时间】:2017-08-16 17:37:49
【问题描述】:
以下命令中xargs_tasks的作用是什么?:
cat source.ndjson | tr '\n' '\0' | xargs -0 -n 1 -P 8 sh -c './theprocess.py $1' xargs_tasks >> errors.log 2>&1
即在阅读-c选项到sh的手册页详细信息后,实际上可以通过运行得到相同的结果:
cat source.ndjson | tr '\n' '\0' | xargs -0 -n 1 -P 8 sh -c './theprocess.py $0' >> errors.log 2>&1
也就是说,对于-c,引号中字符串后面的任何参数都将分配给变量$0、$1,等等。第一个命令中的xargs_tasks 设置为$0,通过管道传送到xargs 的参数一次设置为$1。因此,我的第二个命令的工作原理完全相同,因为我在字符串中直接包含 $0 而不是 $1。
我的猜测是xargs_tasks 给了你一个短字符串来过滤像htop 这样的东西,但这是一个延伸。
【问题讨论】:
标签: bash parallel-processing xargs