Phy*_*cus 5 linux bash gnu-parallel
我正在尝试使用不同的参数并行化粒子模拟以节省一些时间。因此,我想GNUparallel用于为不同的参数运行 bash 脚本。该脚本读取一个文件,然后执行模拟,例如:
$bash script <<< input file
然而:-
$cd ~/parameter_files ls | parallel bash script <<< {}
根本不起作用。我是 Linux 和 GNUparallel 的新手,所以希望有人可以提供帮助。
你几乎是对的,在命令周围使用双引号
ls | parallel "bash script <<< {}"
Run Code Online (Sandbox Code Playgroud)
否则,此处的字符串<<<会将输入输入到parallel命令中,而不是每个单独的bash script命令中
然而,我发现这个用例非常不寻常,因为这意味着基本上您的脚本正在读取文件名字符串。如果您只想将文件作为参数传递给脚本,您可以使用
ls | parallel bash script
Run Code Online (Sandbox Code Playgroud)
或者如果您想使用标准输入传递文件的内容
ls | parallel "bash script < {}"
Run Code Online (Sandbox Code Playgroud)
您可以在目录parallel的每个文件上这样使用~/parameter_files:
find ~/parameter_files -maxdepth 1 -type f -print0 | parallel -0 bash ../script
Run Code Online (Sandbox Code Playgroud)
find命令查找目录中的所有文件~/parameter_files并返回 NUL 终止的文件parallel -0 bash ...将每个文件名提供给您的 shell 脚本并执行它。| 归档时间: |
|
| 查看次数: |
3725 次 |
| 最近记录: |