如何确定脚本本身中Bash脚本文件的名称
比如,如果我的脚本在文件runme.sh中,那么我如何使它显示“youarrunme.sh”消息而不进行硬编码
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