Como imprimir apenas o nome do script?


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

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

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

Respostas:


22

Use basename:

#!/bin/bash

basename -- "$0"

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

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

6
Isso falhará se o nome do script começar com um traço -, você precisa basename -- "$0". Usando a expansão de parâmetros do shell para evitar isso e não forçá-lo a iniciar um comando externo.
precisa saber é

3
@cuonglm, é improvável que um nome de script comece com um traço, mas é um ponto válido.
Cjm

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.