Shell
在後台執行但不丟棄輸出
我使用 Git 託管。所以我經常跑步
git push
。我想
git push
在後台執行,這樣我就不會等待它完成,而是在我的終端中執行其他任務。但我不想
git push
在真實背景中執行 (git push &
),因為我需要查看它的輸出以確保它執行時沒有錯誤。像後台程序一樣執行它但仍然看到它的輸出的正確方法是什麼?
我想到的最好的事情是:
xterm -hold -e 'git push' &
但這使用 XTerm 而不是 Gnome Terminal,我使用最多的應用程序。這在某種程度上是不一致的。
還有什麼其他選擇?
如果您不需要實時查看輸出,您可以執行以下操作:
git push 2>&1 > ~/git-push-$(date +"%Y%m%d-%H%M").log &
以上將在您的主目錄中創建一個文件,其中包含您在其文件名中呼叫它的日期和時間(例如
git-push-20160208-1201.log
)。您可以將其放入別名或 shell 函式中,這樣您就不必重新輸入,或者如果您只需要保留最後一次推送以供審查,您可以使用:git push 2>&1 > ~/git-push.log &
如果推送失敗,您甚至可以使用以下任一命令向自己發送通知:
git push 2>&1 > ~/git-push.log || notify-send "Push failed" "git push initiated from $(pwd) at $(date) threw an error!" &