我如何知道Bash脚本中的脚本文件名?

发布于 2021-02-02 11:14:48

如何确定脚本本身内部的Bash脚本文件的名称?

就像我的脚本在文件中一样runme.sh,那么我如何在不进行硬编码的情况下显示“您正在运行runme.sh”消息呢?

关注者
0
被浏览
109
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。
    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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看