me=`basename "$0"`
要通读通常不是您想要的符号链接1(您通常不希望这样使用户感到困惑),请尝试:
me="$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")"
海事组织,这将产生令人困惑的输出。“我运行了foo.sh,但这是说我正在运行bar.sh !?一定是bug!”
此外,具有不同名称的符号链接的目的之一是根据它的名称提供不同的功能(在某些平台上可以考虑一下gzip和gunzip)。
1也就是说,要解析符号链接,以便在用户执行时
foo.sh实际上是指向的符号链接
bar.sh,您希望使用解析的名称
bar.sh而不是
foo.sh。



