POSIX shell脚本shebang#!/ bin / sh与#!/ usr / bin / env sh,有什么区别?

LinuxSecurityFreak

我最近注意到,许多脚本都/usr/bin/env在它们的shebang中使用我已经看到,主要使用的BashPython的,但迄今为止从未会同POSIX shashdash,...)。

我想知道为什么(如果我的初衷是高度可移植的)POSIX Shell脚本可以从该env方法中受益


关于是否使用是否有一般共识:

  • 标准:

    #!/bin/sh
    
  • 环境:

    #!/usr/bin/env sh
    

让我强调这一点:

我从来没有见过这样的人sh

Reynaldo Aceves占位符图像

设置为#!/bin/sh将直接转到该文件/bin/sh

设置为#!/usr/bin/env sh/usr/bin/env使用的参数执行sh这将导致脚本sh在您的PATH变量中执行,而不是通过显式执行/bin/sh

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

python shebang与/ usr / bin / env而不是hard-path有什么区别?

/ bin / sh:/ usr / bin / wkhtmltopdf:找不到

#!/ bin / sh和#!/ bin / bash有什么区别?

由于/ usr / bin / sh,Linux Shell脚本出错

“#!/ usr / bin / env bash”和“#!/ usr / bin / bash”之间有什么区别?

在/ usr / local / bin中安装.sh脚本的安全方法?

/usr/bin/mount: 在 .sh 脚本中找不到

bin sh脚本-“(”意外

如何使用#!/ bin / sh(POSIX sh)按名称查找变量?

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

/ bin和/ usr / bin /有什么区别?

什么是/ bin / sh -c?

在shebang中使用“#!/ usr / bin / env python”而不是仅仅调用“#!python”解释器有什么好处?

从/ usr / bin / env或/ bin启动bash

symlink / usr / bin / env损坏?

在POSIX shell(/ bin / sh)中处理变量作用域(由于while循环中的管道)?

在Windows上使用#!/ usr / bin / env python3 shebang

为什么最好使用“#!/ usr / bin / env名称”代替“#!/ path / to / NAME”作为我的shebang?

为什么SHELL在Csh脚本中指向/ bin / sh?

为什么“#!/ usr / bin / env python”比“#!/ usr / bin / python”更正确?

有什么理由让Shebang指向/ bin / sh而不是/ bin / bash吗?

time和/ usr / bin / time有什么区别?

在配置脚本中使用硬编码的/ usr / bin / env

为什么#!/ usr / bin / env将“ $ @”显示为1?

什么是#!/ usr / bin / env xdg-open在桌面文件中?

#!/ bin / sh与#!/ usr / local / bin / python在可执行文件中

/ usr / bin / env:'python':没有这样的文件或目录

/ bin / sh笨拙的行为

Crontab / bin / sh语法