dash 是否有非交互式非登录 rc 文件?我已经阅读了手册页,其中建议.profile
使用登录 shell 和$ENV
交互式 shell 的环境变量。
是否有任何针对非交互式非登录 shell 运行的东西,例如zsh
'zshenv
文件或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
,因此通常不会读取它,即使在交互模式下也是如此。