[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.
[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:
POSIXly, você só precisa de expansão de parâmetro :
#!/bin/bash
printf '%s\n' "${0##*/}"
-
, você precisabasename -- "$0"
. Usando a expansão de parâmetros do shell para evitar isso e não forçá-lo a iniciar um comando externo.