呼叫 bash 腳本

呼叫 bash 腳本

有一個簡單的腳本:

echo "file: $0"

當像這樣調用時:

bash myscript.sh

或者

./myscript.sh

file: myscript.sh按預期給出腳本 ( ) 的檔名,但在呼叫時:

來源 myscript.sh

或者

。 ./myscript.sh

給予 shell 名稱 ( bash) 而不是腳本檔名。

為什麼會這樣呢?

答案1

第一次呼叫將啟動 bash 的新實例來解釋腳本,這表示 bash 將設定$0為其路徑。

第二個呼叫會將檔案視為可執行檔並運行它,因此$0將指向它。

後兩個呼叫會將檔案載入到 bash 的目前實例中,因此$0將指向那裡。

注意:#2 需要檔案可執行,#1、#3 和 #4 則不需要。

相關內容