notas de estudio: configurar shell -e en, el uso e set +

notas de estudio: configurar shell -e en, el uso e set +

https://blog.csdn.net/xiaofei125145/article/details/39345331/

set -e # Salir de la secuencia de comandos si ocurre un error

Un guión

SET + E # no rescatar a los de la escritura del golpe, si no existe ccache

guión B

set # volver -e para regular "de rescatar a los errores en el" modo

guión C

 

Como anteriormente, una concha de secuencia de comandos,

Cuando A y C la ejecución del script si hay un valor de retorno es distinto de cero, el conjunto de salidas de guión inmediatamente

Si un B aparece en los rendimientos de guión un valor distinto de cero continuará ejecutando el siguiente script C.

 

set -e
comando conjunto de parámetros -e, Linux viene de la siguiente manera:
. "inmediatamente las salidas de salida con SI Un simple comando de estado distinto de cero"
Es decir, después de que aparezca "-e conjunto" de código, el evento el valor de retorno es distinto de cero, el conjunto de salidas de guión inmediatamente. Algunas personas les gusta usar este parámetro, por consideración para asegurar el código de seguridad. Pero a veces, esta preciosa mente, puede conducir a problemas graves.

caso real:
el comienzo de la secuencia de comandos a.sh uso "set -e", y puede funcionar normalmente. Al cabo de unos meses o más tiempo, debido a la demanda para mejorar y aumentar las tres líneas en la operación de escritura hadoop:
#! / Bin / bash
El -e SET
...
/home/work/.../hadoop la DFS -rmr / Aplicación /.../dir
/home/work/.../hadoop la DFS -mkdir /app/.../dir
/home/work/.../hadoop la DFS -poner file_1 /app/.../dir/
...
estas líneas Hadoop lógica de mando es simple: Claro y crear un nuevo directorio en hdfs, y empujar los archivos a un directorio local para su uso posterior. Estas líneas solo llevan a cabo, ejecutar la línea de comandos, además de sugerir eliminar el directorio no existe, y no hay problema, el archivo seguirá siendo empujado al lugar designado.

Pero cuando la primera ejecución del script, pero se retiró de la falla, y el plomo con el programa general llama a las salidas de guión, causando graves consecuencias. La razón no está todavía en hdfs este directorio, RMR esta línea devuelve 255, este valor está en frente de la secuencia de comandos "set -e" para la captura, el resultado directo de las salidas de guión.

El nuevo código en sí no es el problema, elimine y luego crear un nuevo directorio, pero es bastante estándar para asegurar la operación de seguridad de datos, la tolerancia misma comando de borrado de fallos, puede garantizar la ejecución normal de los comandos posteriores. El hecho es que hay varios cientos de líneas del guión, y la lógica es más compleja, aumentando el tiempo de estas líneas de código, los desarrolladores no recuerdan el guión hay un "set -e" la emboscada.

Conjunto visible "set -e", puede ser útil en el proceso de desarrollo del guión, y después de que se complete el desarrollo, en particular, puede que tenga que actualizar guión de este último, puede ser enterrado un riesgo de seguridad.
----------------
responsabilidad: Este artículo es el "goteo del agua en el río" original artículo RDCC bloggers y seguimiento 4.0 CC BY-SA acuerdo de derecho de autor, que se reproduce, por favor incluya la fuente original y este enlace comunicado.
fuente original: https: //blog.csdn.net/xiaofei125145/article/details/39345331/

 

 

 

 

 

Publicado 80 artículos originales · ganado elogios 38 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/kuangben2000/article/details/104388545
Recomendado
Clasificación