我有一個像下面這樣的shell腳本,我想用它來以非阻塞的方式執行一系列命令,也就是說,只要其中一個命令循環是執行我希望腳本繼續下一個命令。從shell腳本內部的nohup命令阻止腳本exeuction
#!/bin/bash
declare -a parameters=("param1" "param2" "param3")
for parameter in "${parameters[@]}"
do
command="nohup mycommand -p ${parameter} 1> ${parameter}_nohup.out 2>&1 &"
${command}
done
然而,對於每一個命令腳本塊,直到它完成繼續的for循環執行下一個命令的下一個迭代之前執行。而且,該命令的輸出將重定向到nohup.out
,而不是指定用於記錄輸出的文件名。爲什麼shell腳本中的nohup行爲不同?
我的分佈的Debian GNU/Linux的8(傑西)
避免編寫輸出重定向到變量。 – Cyrus
當我輸出命令時,輸出文件的名稱是正確的,因此對於第一個參數,它將是'nohup mycommand -p param1 1> param1_nohup.out 2>&1&',但輸出將轉到nohoup.out,無論。 – Vasilis