Cualquier comando en mi terminal que salga con un código distinto de cero cierra la ventana de mi terminal

Cualquier comando en mi terminal que salga con un código distinto de cero cierra la ventana de mi terminal

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 -econfigurado 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.profileset -e

¿Habría otros culpables obvios?

Respuesta1

Muy bien, de hecho, fue un descarriado set -elo que causó mi problema.

La forma en que encontré el set -eestaba 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 -epuede 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 -eestaba 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 +een su .bashrc– en elfin.

Puedes ir a cavar (hay muchos otros lugares donde set -epodría estar) pero eso se encargará de todo.

Sin embargo, si set -ees parte de usted $PROMPT_COMMAND, lo anterior no funcionará. Pruebe printf '%s\n' "$PROMPT_COMMAND"y vea qué contiene.

Respuesta3

En mi caso, set -eno estaba en ninguno de mis inicios de bash y agregarlo set +eno .bashrclo solucionaba.

Resulta que set -eestaba en un script bash que ejecuto con frecuencia para mi proyecto, y estaba ejecutando ese script . ./my-dev-script.shpara 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.shevita el frustrante escenario de "Bash Roulette".

información relacionada