¿Por qué esta declaración de retorno del terminal del script de shell es incorrecta?
El siguiente contenido está extraído de & gtEl libro que acaba de publicar está muy bien escrito. Se vende en varios sitios web de venta de libros. Recomiendo comprar uno. Como referencia:
El comando incorporado return se usa para regresar de una función... No hay necesidad de un comando return en una función. Cuando se llama a una función, los comandos de la función volverán naturalmente al lugar donde fueron llamados (generalmente el programa principal) después de la ejecución. Si hay un comando de retorno en la función, se devolverá cuando se ejecute. Si return no es el último comando de la función, no se ejecutarán otros comandos después de return.
...
Tenga en cuenta que el comando de retorno no se puede utilizar directamente en el programa principal del script. Consulte el siguiente ejemplo:
$ cat fun_return_2.sh
#!/bin/bash
echo "return_2_1 "
Regresar
Echo "return_2_2"
Si ejecuta el script directamente, encontrará un mensaje de error:
$ ./fun_return_2.sh
p >retorno_2_1
. /fun_return_2.sh: Línea 3: retorno: solo puede "regresar" desde una función o script de código fuente
return_2_2
Ejecute el script con el comando fuente o el comando de punto, no hay problema :
$ fuente fun_return_2.sh
return_2_1
El primer comando echo que ejecuta el script fun_return_2.sh muestra return_2_1 y luego ejecuta return. El script finaliza. y no se ejecutará. El segundo comando de eco.