简单的问题,是一样的吗?当我写bash
+ tab
=>时,Vim 会自动完成我,#!/usr/bin/env bash
但我通常#!/bin/bash
在每个脚本中都观察。所以……
答案1
总结:
使用#!/usr/bin/env bash
长答案:
不,它们并不相同。第一种形式 ( #!/usr/bin/env bash
)更好,因为当 Bash 在您的路径中但不在 中时,它将起作用。通常,两者都会起作用。但是,如果您的脚本在没有 Bash(或没有指向它的符号链接)的/bin
系统上运行,则不会起作用,因为它不在该位置,但会起作用。/bin/bash
#!/bin/bash
#!/usr/bin/env bash
env
在您的路径中查找命令,因此如果 Bash 在您的路径中但不在 中/bin
,则需要使用env
。实际上,由于相当多的脚本不使用env
,操作系统倾向于创建/bin/bash
Bash 或指向它的符号链接。请注意有很小的可能性env
不起作用如果您使用一些旧系统,但在任何相当现代的操作系统(Debian,Ubuntu,Arch,Fedora 等)上最好使用env
。