script - salir del código de comando de sustitución en la asignación de variable local bash
scripts linux ejercicios resueltos (1)
Esta pregunta ya tiene una respuesta aquí:
¿Cómo puedo verificar el código de salida de una sustitución de comando en bash si la asignación es a una variable local en una función?
Por favor vea los siguientes ejemplos. El segundo es donde quiero comprobar el código de salida.
¿Alguien tiene una buena solución alternativa o correcta para esto?
$ function testing { test="$(return 1)"; echo $?; }; testing
1
$ function testing { local test="$(return 1)"; echo $?; }; testing
0
Si observa el archivo man para local
(que en realidad es solo la página del manual BASH builtins), se trata como su propio comando, que da un código de salida de 0
al crear con éxito la variable local. Así que local
está sobrescribiendo el último código de error ejecutado.
Prueba esto:
function testing { local test; test="$(return 1)"; echo $?; }; testing
EDITAR: Seguí adelante y lo probé por ti, y funciona.