HOWTO · Bash
獲取 Bash 指令碼檔名
本教程將討論如何在 Bash 中獲取檔名。
本頁內容
本文展示了我們如何通過指令碼獲取自己的檔名。此外,我們將看到必要的示例和解釋,以使主題更容易。
有很多方法可以完成這項任務。但是我們將看到三種簡單的方法來做到這一點。
讓我們來看看它們。
使用 basename 命令獲取 Bash 指令碼檔名
我們可以使用 Bash 的內建命令 basename 命令獲取指令碼的檔名。為此,你必須遵循以下程式碼。
$ cat directory/ScriptName.sh
#!/bin/bash
echo "Your script name =" $(basename "$0")
你會注意到我們使用 $0 和 basename 命令來查詢指令碼的檔名。這個 $0 是 Bash 中的一個內建變數,表示相對路徑的檔名。
執行命令後,我們將看到以下輸出。
$ directory/ScriptName.sh
Your script name = ScriptName.sh
使用引數擴充套件獲取 Bash 指令碼檔名
我們也可以使用引數擴充套件來完成相同的任務。我們需要按照下面的程式碼使用此方法執行相同的任務。
$ cat directory/ScriptName.sh
#!/bin/bash
echo "Your script name = ${0##*/}"
你可以注意到我們使用了一些符號組合 ${0##*/},用於顯示引數擴充套件。執行命令後,我們將看到以下輸出。
$ directory/ScriptName.sh
Your script name = ScriptName.sh
使用 BASH_SOURCE 變數獲取 Bash 指令碼檔名
BASH_SOURCE 是 Bash 中包含檔名的內建環境變數。要使用此變數查詢指令碼的檔名,你需要遵循以下程式碼。
$ cat directory/ScriptName.sh
#!/bin/bash
echo "Your script name =" $(basename "${BASH_SOURCE}")
執行命令後,我們將看到以下輸出。
$ directory/ScriptName.sh
Your script name = ScriptName.sh
請注意,本文中使用的所有程式碼都是用 Bash 編寫的。它僅適用於 Linux Shell 環境。