Al principio esto era un poco divertido, como jugar "Bash Roulette"... pero ahora se está volviendo viejo jajaja.
Cualquier comando en mi terminal que salga con un código distinto de cero cierra la ventana de mi terminal
Me dijeron que tal vez haya set -e
configurado algún script bash en algún lugar del que proviene mi terminal.
Lo he comprobado .bash_profile
// y no parece que esté ahí..bashrc
.profile
set -e
¿Habría otros culpables obvios?
Respuesta1
Muy bien, de hecho, fue un descarriado set -e
lo que causó mi problema.
La forma en que encontré el set -e
estaba usandobash -lx
Lo mejor sería utilizar:
bash -lx > lx.log 2>&1
luego abra ese archivo de registro y busque set
...
Una vez que encuentre ese descarriado, set -e
puede eliminar esa línea y ¡su problema debería desaparecer! (Aunque reiniciar la máquina podría ser una buena idea).
En mi caso, set -e
estaba en un archivo del que proviene .bash_profile, pero la línea no estaba en .bash_profile.
Respuesta2
Si solo desea resolver el problema, incluya set +e
en su .bashrc
– en elfin.
Puedes ir a cavar (hay muchos otros lugares donde set -e
podría estar) pero eso se encargará de todo.
Sin embargo, si set -e
es parte de usted $PROMPT_COMMAND
, lo anterior no funcionará. Pruebe printf '%s\n' "$PROMPT_COMMAND"
y vea qué contiene.
Respuesta3
En mi caso, set -e
no estaba en ninguno de mis inicios de bash y agregarlo set +e
no .bashrc
lo solucionaba.
Resulta que set -e
estaba en un script bash que ejecuto con frecuencia para mi proyecto, y estaba ejecutando ese script . ./my-dev-script.sh
para que funcionara.honrar mis alias de bash.
Lo que no me di cuenta es que ejecutarlo con ese extra .
al frente también causaba que las opciones de bash en el script se trasladaran a todas mis sesiones habituales de terminal.
Necesito una nueva solución para ejecutar un script bash que respete mis alias personales de bash, pero al menos encontré la fuente del malicioso archivo set -e
. Simplemente ejecutarlo normalmente ./my-dev-script.sh
evita el frustrante escenario de "Bash Roulette".