Shell

你應該在 shell sript 中使用哪個 Shebang?

  • April 30, 2020

抱歉,這可能是一個愚蠢的問題,但我是 shell 腳本的新手。

我有一個名為oem-device-name.sh. 我需要對 Zabbix 執行外部檢查: https ://www.zabbix.com/documentation/5.0/manual/config/items/itemtypes/external

腳本本身只有 1 行,它只是一個 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文件中,它會有所不同嗎?

#!/bin/sh 使用使用者目前設置的任何登錄 shell。大多數預設為 bash 但這不能保證

#!/bin/bash 用於(可預測的)bash 腳本

帶有 .sh 後綴的文件在某種程度上已被棄用並且在很大程度上是不必要的 - 只需將腳本命名為您想要的名稱即可

如果您使用 bash,請使用 #!/bin/bash,除非您預見自己(或其他使用者)需要使用不同的 shell(如 csh)執行腳本

引用自:https://serverfault.com/questions/1015002