【发布时间】:2016-08-03 19:48:28
【问题描述】:
我正在使用 OSX 的 Mac 上工作,并且我使用 bash 作为我的 shell。我有一个脚本可以达到以下效果:
VAR1="pass me into parallel please!"
VAR2="oh me too, and there's actually a lot of us, but its best we stay here too"
printf "%s\n" {0..249} | xargs -0 -P 8 -n 1 . ./parallel.sh
我收到错误:xargs: .: Permission denied。目的是并行运行另一个脚本(称为parallel.sh),该脚本输入数字0-249。此外,我想确保并行可以看到我们 VAR1 和 VAR2。但是当我尝试获取与. ./parallel 并行的脚本时,xargs 不喜欢这样。采购的重点是因为脚本还有其他我希望并行访问的变量。
我读过一些关于使用 print0 的内容,因为 xargs 用空格分隔它的输入,但我真的不明白 -print0 的作用以及如何使用它。感谢你们提供的任何帮助。
【问题讨论】:
-
额外的
.有什么用? -
“并行运行”和“并行访问”是什么意思?您希望多个进程运行 parallel.sh 脚本并通过共享变量进行通信?
-
这不就是让脚本中声明的变量可用于并行脚本吗?我以为这就是你“采购”的方式。请记住,我充其量只是个新手。
-
@VaughnCato 我重写了原始帖子以尝试更好地解释。但简而言之,是的,我希望运行多个 parallel.sh 进程,并且我希望它们都能够读取变量。