Dans un script bash, je démarre un nouveau terminal avec une commande qui donne une erreur. Cependant, je ne semble pas être en mesure de saisir ce code d'erreur:BASH obtenir le code d'erreur dans le terminal parent du terminal enfant?
#! /bin/bash
gnome-terminal -x bash -c "cat dksdamfasdlm"
echo $?
Sortie:
0
J'obtenir le code d'erreur de la commande gnome-terminal
au lieu du cat
un. Une suggestion que j'ai eue, était de faire un fichier avec le code et lire cela à partir du parent bash. Le problème est que je semble encore ne pas être en mesure et lire le code d'erreur, même de cette façon:
#! /bin/bash
gnome-terminal -x bash -c "cat dksdamfasdlm; echo $?; sleep 2"
sortie (sur le nouveau terminal):
cat: dksdamfasdlm: No such file or directory
0
Pourquoi? Une suggestion sur la façon de résoudre cela? Je veux juste attraper l'erreur dans le nouveau terminal du bash parent.
Pourquoi voudriez-vous faire cela? À moins de tester le terminal GNOME lui-même, vous devriez exécuter le script directement plutôt que via un terminal. – l0b0
J'essaye de faire un script BASH qui ouvre différents terminaux pour une application (Docker). Je veux cependant être capable et attraper toutes les erreurs .. – Pithikos
Pourriez-vous donner un peu plus d'arrière-plan? Je ne comprends toujours pas pourquoi vous voulez utiliser des terminaux plutôt que de simplement exécuter des scripts. – l0b0