編輯: user000001的答案與;
分離的命令。我在原始示例中將命令與&&
分開。我注意到的唯一區別是,如果您使用&&
,則不必使用大括號將您的基地命令包圍。分號更靈活一些,所以我更新了示例。
,想到的第一件事是
{ sleep 2; echo "Sleep done"; } &
您還可以抑制來自上面的行stderr
輸出隨行:
{ { sleep 2; echo "Sleep done"; } & } 2>/dev/null
如果你想保存程序輸出(stdout
)到日誌文件供以後查看,您可以使用:
{ { sleep 2; echo "Sleep done"; } & } 2>/dev/null 1>myfile.log
這裏甚至你可以使用一個通用的形式(你甚至可以使一個別名,這樣就可以在任何時間運行,而不必鍵入這麼多!):
# dont hesitate to add semicolons for multiple commands
CMD="cp My_Huge_File.txt New_directory"
{ eval $CMD & } 2>/dev/null 1>myfile.log
您還可能管stdout
如果您希望使用其他腳本或軟件實時處理輸出,請使用|
。如果您想使用多個管道,tee
也是一個有用的工具。僅供參考,I/O重定向here還有更多示例。
我的Mac上的'bash'已經告訴我何時完成後臺作業。這在更新的版本中有所改變嗎? –