獲取 Bash 指令碼檔名

MD Aminul Islam 2023年1月30日
  1. 使用 basename 命令獲取 Bash 指令碼檔名
  2. 使用引數擴充套件獲取 Bash 指令碼檔名
  3. 使用 BASH_SOURCE 變數獲取 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 環境。

作者: MD Aminul Islam
MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn