我知道以下情况。
doit() {
echo Doing it for $1
sleep 2
echo Done with $1
}
export -f doit
parallel --colsep ',' -0 doit ::: 1, 2, 3
期望输出1:
做1完成1做2完成2做3完成3
但是,就我而言,参数之间没有空格' '
。这是我的代码。
doit() {
echo Doing it for $1
sleep 2
echo Done with $1
}
export -f doit
parallel --colsep ',' -0 doit ::: 1,2,3
并且我得到以下输出。
输出2:
做1完成1
如何通过第二个代码块获得第一个所需的输出?
这是必需的:
#!/usr/bin/env bash
doit() {
echo Doing it for $1
sleep 2
echo Done with $1
}
export -f doit
parallel doit ::: $(IFS=,; read -ra A <<< 1,2,3; echo "${A[@]}")
[当您使用--colsep时,parallel
分隔单个参数并馈送到doit
使用-d
而不是--colsep
:
#!/usr/bin/env bash
doit() {
local c
for c; do
echo Doing it for $c
sleep 2
echo Done with $c
done
}
export -f doit
parallel -d ',' doit ::: 1,2,3