Shell

在後台執行但不丟棄輸出

  • February 8, 2016

我使用 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!" &

引用自:https://unix.stackexchange.com/questions/260819