如何在使用者登入時在單獨的 shell 互動實用程式(例如 iTerm2)中啟動命令檔案(例如 *.sh)?

如何在使用者登入時在單獨的 shell 互動實用程式(例如 iTerm2)中啟動命令檔案(例如 *.sh)?

iTerm2 是一個很棒的實用程序,使我與命令列的互動變得更加容易。我每天都會運行很多更新命令,並且認為如果這些命令可以在我的用戶登入時啟動,那就太棒了。我知道,為了在使用者登入事件上執行腳本,必須在 /System/Library/StartupItems 建立一個目錄,其中包含想要運行的腳本,其名稱與該目錄相同(例如 update_sys/update_sys.txt)。此後我遇到的兩個主要問題是 1)執行命令時沒有終端視窗顯示任何輸出,2)我不知道如何將 iTerm2(或任何其他實用程式)指定為主要終端實用程式運行腳本。我確實將 iTerm2 設定為預設終端實用程序,但是某些執行的腳本仍將在終端中啟動。

任何幫助是極大的讚賞!

(如果我對如何向用戶登入事件添加命令的想法不正確,或者如果有更簡單的方法,請告訴我!)

答案1

我從未使用過 iTerm(或 Mac OS);但由於 iTerm 是終端仿真器,因此它可能不適合安排任務。在 *nixiod 系統上,登入腳本通常會從shell 特定檔案(如和 )中的~/.profile、 、等檔案執行。您可以在 shell 的手冊頁中閱讀有關它們的資訊(例如/etc/profile~/.bashrc/etc/bash.bashrcman 1 bash)。

答案2

iTerm 可讓您以互動方式執行這些腳本,並且當互動會話將輸出傳送到您看到結果的畫面時。

許多程式也可以作為後台程序執行。

查看輸出的最佳方法通常是將其手動附加到日誌中。如有必要,請使用 echo 語句來顯示正在執行的命令的位置和內容。對於來自內建指令的輸出流。

我想你可能想要的詳細資訊在這裡:https://unix.stackexchange.com/questions/74520/can-i-redirect-output-to-a-log-file-and-background-a-process-at-the-same-time

some_cmd > some_file 2>&1 &它將標準輸出重定向到日誌檔案。

相關內容