2010-08-14 2 views
3

Dans l'exécution de la ligne suivante dans bash:Obtenir le code de sortie d'une substitution de commande

set -e 
p=$(mktemp -t "${1}.$$.XX") 

mktemp échoue avec ce message:

+++ mktemp -t cpfs.c.o.5643.XX 
mktemp: too few X's in template `cpfs.c.o.5643.XX' 

Comment puis-je avoir l'erreur sur fail inclure des erreurs lors de la commande substitutions? Alternativement, comment puis-je propager le retour code mktemp retour tel que set -e, ou mon propre code peut agir sur le résultat?

Répondre

3

Le code de retour de la dernière commande est toujours conservé dans $?.

faire quelque chose comme:

command 
ERR=$? 

Pour ne pas perdre ce code de retour pour une utilisation ultérieure.

+0

Je pense que cela fonctionne: P –