我想返回也可以啓動後臺任務的腳本的結果。命令替換運算符等待後臺任務,使通話變慢。我創建了以下示例來說明問題:對執行後臺任務的腳本執行bash命令替換
function answer {
sleep 5 &
echo string
}
echo $(answer)
有沒有辦法調用命令而不等待它創建的任何後臺作業?
感謝,
馬克
我想返回也可以啓動後臺任務的腳本的結果。命令替換運算符等待後臺任務,使通話變慢。我創建了以下示例來說明問題:對執行後臺任務的腳本執行bash命令替換
function answer {
sleep 5 &
echo string
}
echo $(answer)
有沒有辦法調用命令而不等待它創建的任何後臺作業?
感謝,
馬克
的問題是,sleep
繼承stdout和保持打開狀態。你可以簡單地重定向標準輸出:
answer() {
sleep 5 > /dev/null &
echo "string"
}
echo "$(answer)"
如果您打算爲節目沿,而函數工作的平均時間歡快地繼續下去,你可以調用該函數在後臺運行。
function answer {
sleep 5
echo Second
}
echo $(answer) &
echo First
它的輸出將是
First
Second
不幸的是,在現實世界的例子中,我需要腳本返回的內容。 –
我把這些命令放入一個tmp.sh文件,然後使用sh tmp.sh> out.txt運行它,輸出文件工作得很好。 –
這就是發生了什麼事。謝謝!! –