2010-05-10 11 views
3

Je lance script.sh et à l'intérieur je veux savoir quel est son nomComment un script connaît son propre nom dans bash?

Existe-t-il une procédure standard pour connaître le nom des scripts? l'idée est de pouvoir extraire le nom de Teh chemin complet + nom contenu dans $0

Merci

+1

Alors recherchez-vous 'basename'? – Cascabel

+0

Ou demandez-vous sur les liens symboliques de déréférencement (peut-être avec 'readlink')? – Cascabel

+0

il existe plusieurs façons d'extraire le nom de fichier à partir du chemin complet comme en utilisant basename, couper, awk, etc – Vijay

Répondre

1

basename $0 vous donnera le nom du script

+2

'basename' ne supprime pas les extensions à moins que vous ne le demandiez. – Cascabel

+0

corrigé, merci - –

6

Oui, $0 contiendra toujours le nom du script . Utilisez basename pour extraire le nom.

basename /some/really/long/dir/path/myscripts/coolscript.sh imprimera coolscript.sh

Donc, dans votre script, vous pouvez le faire:

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

Ce 'my_scriptname = $ (basename" $ ​​0 ")' serait mieux. – changyuheng

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

Edit:

Cela fait la même chose que basename $0. Il supprime la dernière barre oblique et tout ce qui précède $0 en utilisant l'expansion de l'accolade de Bash.

+2

cela vous dérangerait-il d'expliquer ceci :) Merci. – Anders

Questions connexes