Shell

破折號非互動式非登錄rc文件

  • February 5, 2020

dash 是否有非互動式非登錄 rc 文件?我已經閱讀了手冊頁,其中建議.profile使用登錄 shell 和$ENV互動式 shell 的環境變數。

是否有任何針對非互動式非登錄 shell 執行的東西,例如zshzshenv文件或bash$BASH_ENV環境變數?Bourne shell 也有等效文件嗎?


到目前為止,我能想到的最好的方法(儘管根本不理想,因為它需要我編輯每個腳本)是按如下方式編輯 shebang:

#!/bin/sh /path/to/script

f

其中/path/to/script包含

f() { echo "/path/to/script"; }

典型的 shell 沒有為非互動式 shell 讀取的 rc 文件。

.profile為登錄 shell 讀取,該登錄 shell 由argv[0]以 a 開頭的 a標識-

$ENV由互動式 POSIX shell 讀取,如果尚未設置,則 shell 使用它自己的預設值。這是.kshrc針對. _ _ _ksh``.bashrc``bash``.shrc``Bourne Shell

然而,Dash 沒有定義預設值$ENV,因此通常不會讀取它,即使在互動模式下也是如此。

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