我有以下
function doit() { echo "'$1', '$2', '$3'"; }
export -f doit
args=("a" "") # Empty argument
echo -e "1\n2" | parallel -k "doit" "${args[@]}" {}
哪個不轉發空引數:
'a', '1', ''
'a', '2', ''
相反,它應該是
'a', '', '1'
'a', '', '2'
為什么并行這樣做以及如何解決它?
uj5u.com熱心網友回復:
parallel將字串傳遞給bash -c- 它們根據 shell 規則進行解釋,空引數只是連接起來并受分詞擴展的影響。
如果您想保留引數,請參考它們。無論是"$(printf "%q " "${args[@]}")"手動還是只parallel -q --quote。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/350255.html
標籤:猛击 gnu-parallel
