2010-05-10 42 views
3

我启动script.sh并在里面它我想知道他的名字是什么脚本如何在bash中知道他自己的名字?

是否有标准的程序来知道脚本名称?这个想法是能够从包含在$0

感谢德全路径+名

+1

那么你只是在寻找'basename'? – Cascabel 2010-05-10 18:07:17

+0

还是你问关于解引用符号链接(也许与'readlink')? – Cascabel 2010-05-10 18:07:45

+0

有很多方法从完整路径中提取文件名,如使用basename,cut,awk等。 – Vijay 2010-05-11 12:36:43

回答

1

basename $0会给你的脚本名称

+2

'basename'不会剥离扩展名,除非你提出要求。 – Cascabel 2010-05-10 18:08:12

+0

固定,谢谢 - – 2010-05-11 08:36:34

6

是提取名称,$0总是包含脚本的名称。使用基本名称来提取名称。

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

因此,在你的脚本,你可以这样做:

my_scriptname="$(basename $0)" 
+0

这'my_scriptname = $(basename“$ 0”)'会更好。 – changyuheng 2016-09-29 06:17:19

2
script="${0##*/}" 

编辑:

这做同样的事情basename $0。它使用Bash的大括号扩展从$0去掉最后一个斜线和它之前的所有内容。

+2

你介意解释一下:)谢谢。 – Anders 2010-05-11 08:40:44