scripts script resueltos programas pasar parametros operaciones manejo ejercicios ejemplos cadenas aritmeticas bash scripting

resueltos - ¿Cuál es el significado de ${0%/*} en un script bash?



scripts linux ejercicios resueltos (1)

Se llama Parameter Expansion . Echa un vistazo a esta página y al resto del sitio.

Lo que ${0%/*} hace es, expande el valor contenido en el argumento 0 (que es la ruta que llamó a la secuencia de comandos) después de eliminar la cadena /* sufijo al final de la misma.

Entonces, $0 es lo mismo que ${0} que es como cualquier otro argumento, ej. $1 que puede escribir como ${1} . Como dije, $0 es especial, ya que no es un argumento real , siempre está ahí y representa el nombre del guión. La Expansión de parámetros funciona dentro de { } - llaves, y % es un tipo de Expansión de parámetros.

%/* coincide con la última ocurrencia de / y elimina cualquier cosa ( * significa algo) después de ese carácter. Mire este simple ejemplo:

$ var="foo/bar/baz" $ echo "$var" foo/bar/baz $ echo "${var}" foo/bar/baz $ echo "${var%/*}" foo/bar

Intento entender un script de prueba, que incluye el siguiente segmento:

SCRIPT_PATH=${0%/*} if [ "$0" != "$SCRIPT_PATH" ] && [ "$SCRIPT_PATH" != "" ]; then cd $SCRIPT_PATH fi

¿Qué significa el ${0%/*} ? Gracias