Lin*_*eak 10 shell posix shebang
我最近注意到许多脚本/usr/bin/env在他们的shebang中使用。我已经看到主要使用Bash和Python,但迄今为止从未与POSIX sh ( ash, dash,... )结合使用。
我想知道为什么,如果我的本意是高度可移植的POSIX shell 脚本可能会从这种env方法中受益?
关于是否使用:是否存在普遍共识:
标准:
#!/bin/sh
Run Code Online (Sandbox Code Playgroud)环境:
#!/usr/bin/env sh
Run Code Online (Sandbox Code Playgroud)让我足够强调这一点:
我从来没有见过这个sh。
小智 15
设置为#!/bin/sh将直接转到该文件/bin/sh。
设置为#!/usr/bin/env sh将/usr/bin/env使用参数执行sh。这将导致脚本sh在您的PATH变量中执行, 而不是显式地使用/bin/sh.