J'ai un script shell dans lequel je envelopper d'une commande (mvn clean install), pour rediriger la sortie vers un fichier de log.
#!/bin/bash
...
mvn clean install $@ | tee $logfile
echo $? # Does not show the return code of mvn clean install
Maintenant, si mvn clean install
échoue avec une erreur, je veux que mon wrapper script shell aussi échouer avec l'erreur. Mais depuis que je suis à la tuyauterie de la sortie de tee-shirt, je ne peut pas accéder au code de retour d' mvn clean install
, alors quand j'ai accès $?
par la suite, c'est toujours 0 (depuis le tee de succès).
J'ai essayé de laisser la commande d'écriture de la sortie d'erreur dans un fichier séparé, et en vérifiant que par la suite, mais la sortie d'erreur de mvn est toujours vide (me semble qu'il écrit sur la sortie standard stdout).
Comment puis-je préserver le code de retour de l' mvn clean install
, mais encore de la tuyauterie à la sortie vers un fichier de log?