shell腳本的配置文件?
是否可以為 zsh 腳本定義配置文件?
我正在執行 macOS 10.15,預設 shell 是 zsh。我已經
alias abc="echo yes"
在~/.zshrc、~/.zsh_profile、~/.profile 和~/.zsh_login 中定義了我能想到的每個配置文件。但是,shell 腳本 t.sh 呼叫abc
會抱怨command not found: abc
:⇒ cat t.sh abc ⇒ zsh t.sh t.sh:1: command not found: abc ⇒ sh t.sh t.sh: line 1: abc: command not found
我知道在 t.sh 的頂部添加一行
source ~/.zshrc
或添加一行會起作用,但我想知道是否可以為我的機器上(由我)執行的任何 zsh 腳本設置一個預設執行的配置文件?source ~/.zsh_login
我問這個是因為我想設置一個別名,當我通過
:!
例如在 vim 中呼叫命令時:!abc
,以及]
程序nnn中的命令時,該別名有效。如果這與我上面的問題無關,請告訴我。我對登錄 shell 和非登錄 shell 或其他類型的 shell 感到困惑。僅供參考,在 vim 中,:!echo $0
將 return/bin/zsh
並將:!whoami
return***(my name)
,所以它看起來像是一個登錄 shell。
對於您執行的任何 zsh 腳本,
~/.zshenv
都將來自:=> cat ~/.zshenv alias abc="echo yes" => cat t.sh abc => zsh t.sh yes
zsh 的點文件的簡化層次結構:
~/.zshenv
- 來自所有 zsh 腳本。~/.zshrc
- 用於所有互動式 zsh 會話(連接到終端的會話)。這通常是放置別名的最佳位置。~/.zprofile
- 用於登錄 zsh 會話,即一組中的第一個互動式會話。對於您的使用,最好將 MacVim 配置為啟動互動式 shell,這樣它就可以從
~/.zshrc
. 為此,請將其添加到您的~/.gvimrc
(注意 g)文件中:let &shell='/bin/zsh -i'
對於其他 vim 風格,您可能需要做一些更複雜的事情 - 請參閱此處的答案:
https ://vi.stackexchange.com/questions/16186/how-to-run-zsh-aliased-command-from-vim -命令模式