2010-05-10 72 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