![您应该在 shell 脚本中使用哪个 Shebang?](https://linux22.com/image/751799/%E6%82%A8%E5%BA%94%E8%AF%A5%E5%9C%A8%20shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%93%AA%E4%B8%AA%20Shebang%EF%BC%9F.png)
抱歉,这可能是一个愚蠢的问题,但我对 shell 脚本还不熟悉。
我有一个名为的文件oem-device-name.sh
。我需要为 Zabbix 执行外部检查:
https://www.zabbix.com/documentation/5.0/manual/config/items/itemtypes/external
脚本本身只有一行,它只是一个 snmpget 命令:
snmpget -v 1 -c public -Oa -Ov -OQ 172.28.132.44:31161 BSS-RCP-MIB::oem-device-name.0
您应该为我的 snmpget 推荐哪种 Shebang?如果您在文件中写入#!\bin\sh
或写入,会有什么不同吗 ?#!\bin\bash
.sh
答案1
#!/bin/sh 使用用户当前设置的任何登录 shell。大多数默认使用 bash,但这并不能保证
#!/bin/bash 用于(可预见的)bash 脚本
带有 .sh 后缀的文件有些不推荐使用,而且基本上没有必要 - 只需将脚本命名为你想要的名称即可
如果您使用 bash,请使用 #!/bin/bash,除非您预见到自己(或其他用户)需要使用不同的 shell(如 csh)运行脚本