Bash
如何製作自定義外殼?
我想在我的 IDE 中有一個自定義 shell(比如有多個
.profile
文件)。它只能配置為單次執行,目前設置為/bin/bash
. 我想在 shell 之前設置環境,以便在 IDE 中打開的每個 shell 都設置好環境。我怎樣才能做到這一點?我嘗試使用以下幾行創建文件。
echo setting path PG_BIN=/Users/user/Documents/pg/bin export PATH=$PATH:$PG_BIN echo git prompt . ~/.bin/git-prompt.sh
當我嘗試執行它時,它只是失敗了,因為當腳本完成時,終端視窗不會保持打開狀態,並且當腳本結束時我無法與之互動。我不能使用腳本來設置環境變數並獲得互動式外殼。
至少有三種方法可以做到這一點。
- 執行
bash --rcfile mycustomrc
將從給定文件中讀取您需要的任何自定義;調味--login
或--noprofile
調味,取決於您是否希望mycustomrc
與標準外殼設置混合。- 作用於特定環境設置以確定是否在標準 shell 設置文件中載入自定義設置。也就是說,在
.bashrc
或.bash_profile
中,將自定義程式碼放在if [[ $FOO_IDE -eq 1 ]]; then ... fi
. IDE 需要設置這個環境變數,或者可能已經設置了一些合適的環境變數來操作。如果您希望所有的 shell 配置都在通常的文件中,而不是四處散落,也許會更好。- 將自定義 shell 配置輸入新
bash
程序,然後與之互動。參見例如feed
,feed.1
,zcomppoke
,zcomppoke.1
以了解此模式的實際應用。更複雜,但確實填充了歷史記錄,並且確實支持不太能夠執行前兩種自定義的東西。