在对一些模拟数据进行后处理的较大脚本中,我有以下行:
parallel bnzip2 -- *.bz2
Run Code Online (Sandbox Code Playgroud)
其中,如果我理解parallel
正确(我可能没有理解),应该在具有列出的扩展名的所有文件上运行程序的 n 核线程。您可能会注意到我拼错了命令bunzip2
。我希望这里有警告或错误消息,但它无声无息地失败了。这是故意的吗?以后我怎么不被这件事咬到?
更新:
我parallel
安装的可能与我认为的不同:
> parallel --version`
parallel: invalid option -- '-'
parallel [OPTIONS] command -- arguments
for each argument, run command with argument, in parallel
parallel [OPTIONS] -- commands
run specified commands in parallel
Run Code Online (Sandbox Code Playgroud)
parallel
我系统上的手册页提供:
parallel(1) parallel(1)
NAME
parallel - run programs in parallel
....
AUTHOR
Tollef Fog Heen
Run Code Online (Sandbox Code Playgroud)
这似乎不是GNU 版本。
我有一些php
按顺序运行的脚本,例如:
php index.php import file1 --offline &&
php index.php import file2 --deleteUnused &&
php index.php import file3
Run Code Online (Sandbox Code Playgroud)
现在我新发现了该parallel
命令,并尝试了类似的操作:
parallel -j 3 -- "php index.php import file1 --offline" "php index.php import file2 --deleteUnused" "php index.php import file3"
Run Code Online (Sandbox Code Playgroud)
它完美地工作。
是否有可能我可以有一个包含上述所有命令的文件,并从parallel
一个选项开始从文件中读取命令?
像这样的东西:
parallel -XX myFileWithCommands.txt
Run Code Online (Sandbox Code Playgroud)