En BASH, ¿es posible obtener el nombre de la función en el cuerpo de la función? Tomando los siguientes códigos como ejemplo, quiero imprimir el nombre de la función "Test" en su cuerpo, pero "$ 0" parece referirse al nombre del script en lugar del nombre de la función. Entonces, ¿cómo obtener el nombre de la función?En BASH, ¿es posible obtener el nombre de la función en el cuerpo de la función?
#!/bin/bash
function Test
{
if [ $# -lt 1 ]
then
# how to get the function name here?
echo "$0 num" 1>&2
exit 1
fi
local num="${1}"
echo "${num}"
}
# the correct function
Test 100
# missing argument, the function should exit with error
Test
exit 0
Gracias, esto realmente ayuda. Aprendo más que solo la solución de mi pregunta. Esta matriz podría usarse para imprimir la pila de llamadas cuando falla la secuencia de comandos. –
Claro. En ese sentido, también puede encontrar el contenido de 'BASH_LINENO' de interés. – FatalError
O puede usar el $ FUNCNAME más corto y equivalente. –