给出下面的 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
我想要这个的原因是能够在同一个脚本文件中共享代码/函数,但执行方式不同,具体取决于如何命令被调用了。有点像uptime
和w
是相同的二进制文件,但根据它们的调用执行不同的功能。