获取 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