Red de conocimientos turísticos - Información de alquiler - ¿Por qué esta declaración de retorno del terminal del script de shell es incorrecta?

¿Por qué esta declaración de retorno del terminal del script de shell es incorrecta?

Este es un problema del shell de Linux. En lo que respecta a bash, el comando return solo se puede usar dentro de una función, no directamente en un script (no directamente en una terminal de script). Se puede utilizar en el script al ejecutar el script con el código fuente a1.sh (o .a1.sh). (Regreso: solo se puede "regresar" desde una función o script de código fuente)

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.