Come stampare solo il nome dello script?


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

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

Domanda : Come posso generare "foo.sh"? Non importa come è stato eseguito.

Risposte:


22

Utilizzare basename:

#!/bin/bash

basename -- "$0"

Se si desidera assegnarlo a una variabile, è necessario:

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

6
Ciò fallirà se il nome dello script inizia con un trattino -, è necessario basename -- "$0". Usare l'espansione dei parametri della shell per evitarlo e non forzare l'avvio di un comando esterno.
cuonglm,

3
@cuonglm, è improbabile che un nome di script inizi con un trattino, ma è un punto valido.
cjm,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.