J'exécute une séquence de commandes dans xterm:
xterm -sb -bg black -fg white -e "pdflatex --shell-escape -file-line-error-style | && biber | && pdflatex --shell-escape -interaction nonstopmode -file-line-error-style | && pdflatex --shell-escape -interaction nonstopmode -file-line-error-style | && evince |.pdf &"
(les pipes sont remplies avec un nom de fichier par jEdit lorsque la commande est appelée, mais ce n'est pas un problème jEdit).
Si je l'appelle avec xterm -hold
ça reste ouvert et je dois le fermer avec la souris ou avec Alt + F4. Si je l'appelle sans -hold, ça va et je ne peux pas voir quelle a été la dernière commande réussie.
Alors est-il possible de:
- appeler xterm avec une attente conditionnelle ou
- fermez xterm avec une commande lorsqu'il a été appelé avec -hold (le fait de taper exit ferme une fenêtre xterm qui a été ouverte sans -hold, mais pas celle qui a été ouverte avec -hold.
Réponses:
Si vous pouvez l'utiliser,
bash
essayez ceci.set -o pipefail
is key here - bash quitte une commande dans une chaîne de commandes en pipeline avec un code de sortie. Avecpipefail
si une commande de la chaîne ne l'état d'erreur sera toujours zéro (quel que soit si une erreur est survenue ou non).la source
pipefail
, mais je soupçonne que c'était moi contre les scripts contre jEdit. Inspiré par votre réponse, j'ai mis au point un document qui fonctionne, que je posterai comme réponse au formatage et parce qu'il est trop long pour un commentaire.Je n'ai pas réussi à obtenir la solution donnée par suspectus, mais inspiré par cette réponse, j'ai obtenu ce qui suit:
Je viens maintenant d'exécuter à
xterm -sb -bg black -fg white -e "~/.jedit/macros/LaTeX/pdflatex.sh |" &
partir de jEdit, pdflatex.sh est comme suit:la source