Comment imprimer uniquement le nom du script?


9
[username@notebook ~]$ cat foo.sh 
#!/bin/bash

echo "$0"
[username@notebook ~]$ ./foo.sh
./foo.sh
[username@notebook ~]$ 

Question : Comment puis-je sortir le "foo.sh"? Peu importe comment il a été exécuté.

Réponses:


22

Utilisation basename:

#!/bin/bash

basename -- "$0"

Si vous voulez l'assigner à une variable, vous feriez:

my_name=$(basename -- "$0")

6
Cela échouera si le nom du script commence par un tiret -, vous en avez besoin basename -- "$0". Utiliser l'expansion des paramètres du shell pour éviter cela et ne pas vous forcer à lancer une commande externe.
cuonglm

3
@cuonglm, il est peu probable qu'un nom de script commence par un tiret, mais c'est un point valide.
cjm

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.