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.