小编典典

为什么 #!/usr/bin/env bash 优于 #!/bin/bash?

all

我在很多地方都看到过,包括这个网站上的推荐(什么是首选的 Bash
shebang?
),#!/usr/bin/env bash优先使用#!/bin/bash.
我什至看到一个有进取心的人建议使用#!/bin/bash
错误

的,这样做会丢失 bash 功能。

综上所述,我在严格控制的测试环境中使用
bash,其中流通的每个驱动器本质上都是单个主驱动器的克隆。我理解可移植性论点,尽管它不一定适用于我的情况。是否有任何其他理由更喜欢#!/usr/bin/env bash替代方案,并且假设可移植性是一个问题,是否有任何理由使用它可能会破坏功能?


阅读 77

收藏
2022-05-12

共1个答案

小编典典

#!/usr/bin/env搜索PATHbashbash并不总是在 中/bin,尤其是在非 Linux 系统上。例如,在我的
OpenBSD 系统上,它位于 中/usr/local/bin,因为它是作为可选包安装​​的。

如果您绝对确定bash并且/bin将永远存在,那么将其直接放入您的 shebang
并没有什么坏处——我建议您不要这样做,因为脚本和程序的寿命都超出了我们最初认为的寿命。

2022-05-12