能否获取用于调用 shell 脚本的别名?

能否获取用于调用 shell 脚本的别名?

给出下面的 Bash 脚本(我们称之为foo.sh):

#!/usr/bin/env bash

cat <<EOF
\$0: $0
\$BASH_SOURCE: ${BASH_SOURCE[0]}
EOF

然后为其创建一个别名

$ alias bar='./foo.sh'

执行时bar,输出如下:

$ bar
$0: ./foo.sh
$BASH_SOURCE: ./foo.sh

我想知道是否有一个变量或任何其他方法来获取(从脚本本身)命令/别名用于调用脚本——在本例中为bar.所需的输出将是例如

$ bar
$0: ./foo.sh
$BASH_SOURCE: ./foo.sh
$SOME_MAGIC_VARIABLE: bar

我想要这个的原因是能够在同一个脚本文件中共享代码/函数,但执行方式不同,具体取决于如何命令被调用了。有点像uptimew是相同的二进制文件,但根据它们的调用执行不同的功能。

相关内容