【问题标题】:How a script know his own name in bash? [duplicate]脚本如何在 bash 中知道自己的名字? [复制]
【发布时间】:2011-02-17 19:25:49
【问题描述】:

我启动 script.sh 并在其中我想知道他的名字是什么

有知道脚本名称的标准程序吗?这个想法是能够从$0中包含的完整路径+名称中提取名称

谢谢

【问题讨论】:

  • 所以你只是在寻找basename
  • 或者您是在询问取消引用符号链接(可能使用readlink)?
  • 有很多方法可以从完整路径中提取文件名,例如使用 basename、cut、awk 等。
  • 另请参阅:stackoverflow.com/questions/192319/… 并注意如果您使用 source 执行脚本,$0 将提取父名称

标签: bash path


【解决方案1】:

是的,$0 将始终包含脚本的名称。使用 basename 提取名称。

basename /some/really/long/dir/path/myscripts/coolscript.sh 将打印coolscript.sh

所以在你的脚本中,你可以这样做:

my_scriptname="$(basename $0)"

【讨论】:

  • 这个my_scriptname=$(basename "$0")会更好。
【解决方案2】:
script="${0##*/}"

编辑:

这与basename $0 的作用相同。它使用 Bash 的大括号扩展从 $0 中去掉最后一个斜杠和它之前的所有内容。

【讨论】:

  • 你介意解释一下吗 :) 谢谢。
【解决方案3】:

basename $0 会给你脚本名称

【讨论】:

  • basename 除非您要求,否则不会删除扩展名。
猜你喜欢
  • 2011-01-30
  • 2010-09-16
  • 2012-09-03
  • 2013-10-21
  • 2010-10-12
  • 2017-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多