¿Cómo imprimir solo el nombre del script?


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

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

Pregunta : ¿Cómo puedo generar el "foo.sh"? No importa cómo se ejecutó.

Respuestas:


22

Uso basename:

#!/bin/bash

basename -- "$0"

Si desea asignarlo a una variable, haría:

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

66
Esto fallará si el nombre del script comienza con un guión -, es necesario basename -- "$0". Usar la expansión de parámetros de shell para evitar eso y no forzarlo a ejecutar comandos externos.
cuonglm

3
@cuonglm, es poco probable que un nombre de script comience con un guión, pero es un punto válido.
cjm

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.