Como imprimir apenas o nome do script?

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

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

Pergunta : Como posso produzir o "foo.sh"? Não importa como foi executado.

    
por freaking-good-question 27.04.2015 / 18:05

2 respostas

17

Use basename :

#!/bin/bash

basename -- "$0"

Se você quiser atribuí-lo a uma variável, você faria:

my_name=$(basename -- "$0")
    
por 27.04.2015 / 18:08
9

POSIXly, você só precisa da Expansão do parâmetro :

#!/bin/bash

printf '%s\n' "${0##*/}"
    
por 27.04.2015 / 18:12