basename $0 结果为 '-bash'

basename $0 results in '-bash'

当我从 /etc/profile 运行 时,我正在使用的 Raspbian 上的 Bash 脚本似乎无法使用 basename 检索它自己的名称。 d

我总是用它来获取我的脚本的名称:

ScriptName="$($(which basename) -- [=11=])"

手动执行时效果很好。当我捕获 $0 时,结果是 '-bash' 这里可能发生什么。获取脚本名称的更好方法是什么?

我试过

FullScriptName="${BASH_SOURCE[0]}"

然后

ScriptName = "$( basename $FullScriptName)"

但不知何故我得到:

ScriptName: command not found

正确分配和引用变量

修正语法和引用:

ScriptName=$(basename "[=10=]")

另请参阅