以下命令中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
之类的内容中进行过滤,但这只是一段时间。
答案 0 :(得分:1)
对-c
使用sh
选项时,命令后的下一个参数将被视为$0
,并且后面的参数变为$1
, $2
等等。
$0
应该包含shell脚本的名称,而参数从$1
开始。所以xargs_task
就是一个占位符,以防止第一个参数被放入$0
。