HOWTO · Bash

獲取 Bash 指令碼檔名

本教程將討論如何在 Bash 中獲取檔名。

本頁內容

本文展示了我們如何通過指令碼獲取自己的檔名。此外,我們將看到必要的示例和解釋,以使主題更容易。

有很多方法可以完成這項任務。但是我們將看到三種簡單的方法來做到這一點。

讓我們來看看它們。

使用 basename 命令獲取 Bash 指令碼檔名

我們可以使用 Bash 的內建命令 basename 命令獲取指令碼的檔名。為此,你必須遵循以下程式碼。

$ cat directory/ScriptName.sh
#!/bin/bash
echo "Your script name =" $(basename "$0")

你會注意到我們使用 $0basename 命令來查詢指令碼的檔名。這個 $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 環境。