使用 shebang 进行 bash 的正确方法

使用 shebang 进行 bash 的正确方法

bash's shebang中推荐的选项是什么?

#!/bin/bash -e

我目前拥有它,如上所述。此消息来源$HOME/.bashrc

我不想获取用户的.bashrc/源.profile,因为它可能会干扰脚本,并且会延迟脚本的启动(主目录通常位于网络驱动器中)。

是否有一些命令行选项可以禁用此功能?
其他建议放置的标志是什么?

答案1

您只需确保BASH_ENV未设置即可。从以下INVOCATION部分bash(1):

       当 bash 以非交互方式启动时,运行 shell 脚本,例如
       例如,它在环境中查找变量 BASH_ENV,展开
       如果它出现在那里,则为它的值,并使用扩展值作为名称
       要读取和执行的文件。 Bash 的行为就像下面的命令一样:
       并被执行:
              如果[-n“$BASH_ENV”];然后 。 “$BASH_ENV”;菲
       但 PATH 变量的值不用于搜索文件
       姓名。

当 shell 交互启动时,会读取其他点文件(~/.bash_profile、等)。~/.bash_logout

不幸的是,您无法通过脚本控制环境,即使使用#!env(只需要一个参数,在本例中为 shell 程序bash)。您可能希望的最好结果是清除脚本或包装器中的环境,并从一个清晰的环境开始,这可能不是您想要的。

答案2

只要读一点“man bash”就可以了。

在“INVOCATION”部分下,您会发现“--无配置文件“ 或者 ”--诺克“选项应该可以解决问题。

相关内容