Red de conocimiento del abogados - Preguntas y respuestas jurídicas - ¿Qué significan $? y las salidas 0 y 1 en shell? ¿Qué papel juega?

¿Qué significan $? y las salidas 0 y 1 en shell? ¿Qué papel juega?

$0, $1 son parámetros de línea de comando.

Por ejemplo, el nombre del script es run.sh y la línea de comando cuando se ejecuta es ./run.sh arg1 arg2

En este momento, $0 es el script en sí, que es, ./run.sh, $1 es arg1, $2 es arg2...

En cuanto a la salida 0, lo primero es salir del script y, en segundo lugar, especificar el valor de retorno cuando el script sale. Después de salir, puedes usar $? para obtener este valor.

Por ejemplo, al salir del script, se ejecuta la salida 1. Esta vez el script detiene la ejecución y sale. Después de salir, echo $? en el shell obtendrá el valor 1. En términos generales, 0 representa el éxito y otros valores representan el fracaso. El valor específico representa qué error depende del acuerdo al escribir el guión.

Tenga en cuenta que $? debe ser el resultado del último comando. Si ejecuta la salida 1 al ejecutar el script, pero ejecuta un comando ls primero después de que el script sale, entonces la ejecución del comando ls es exitosa. Entonces, en este momento, si hace eco de $?, obtendrá el valor de retorno 0 de ls en lugar de la salida 1 del script.

Para resumir: $n se usa para obtener los parámetros de la línea de comando, exit n se usa para finalizar el script y devolver los resultados de la ejecución a la persona que llama, generalmente un shell u otro script, y $? Obtenga el valor de retorno del último comando.