Bash 指令碼中的 Shebang
Fumbani Banda
2023年1月30日
2022年5月14日
本教程解釋了 shebang 是什麼以及它在 bash 指令碼中的用法。
Bash Shebang (#!
) 以及如何使用它
這 #!
在 shell 指令碼中使用語法來指示直譯器在 Unix/Linux 作業系統中執行指令碼。
#!/bin/bash
shebang 以 #
符號和感嘆號開頭,後跟通向直譯器的完整路徑。
在上面給出的程式碼片段的情況下,它指定應該使用 bash
作為直譯器來執行指令碼,而 bash
直譯器可以在 /bin
目錄中找到。我們假設 bash
已安裝在 /bin
目錄中。
Linux 中的指令碼由第一行指定的直譯器執行。
讓我們編寫一個使用 #!/bin/bash
的指令碼。下面的指令碼使用 bash
作為直譯器以長格式列印資料夾的所有內容。
#!/bin/bash
ls -al
使 Linux 指令碼可移植
#!/bin/bash
假設 bash 安裝在 /bin
目錄中。但是,在不同的類似 Unix
的作業系統中,情況並非總是如此。要使指令碼更便攜,請使用 #!/usr/bin/env bash
。
#!/usr/bin/env bash
這告訴 shell 在 $PATH
變數中搜尋 bash
的第一個匹配項,並使用它找到的第一個匹配項作為直譯器。如果你不知道系統上直譯器的絕對路徑,這很有用。
讓我們編寫一個使用 #!/usr/bin/env bash
的指令碼。下面的指令碼使用它在 $PATH
變數中找到的第一個 bash
shell 作為其直譯器,以長格式列印所有資料夾的內容。
#!/usr/bin/env bash
ls -al
Author: Fumbani Banda