Jak wydrukować tylko nazwę skryptu?

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

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

Pytanie : Jak mogę wygenerować plik „foo.sh”? Bez względu na to, jak zostało wykonane.

cholernie dobre pytanie
źródło

Odpowiedzi:

22

Użyj basename:

#!/bin/bash

basename -- "$0"

Jeśli chcesz przypisać ją do zmiennej, wykonaj następujące czynności:

my_name=$(basename -- "$0")
cjm
źródło
12

POSIXly, potrzebujesz tylko rozszerzenia parametrów :

#!/bin/bash

printf '%s\n' "${0##*/}"
Cuonglm
źródło