Si umount
renvoie 0 comme code de sortie, ce script continue. Parfois, le code de sortie est 127, je suis d'accord et le script devrait continuer. Comment puis-je modifier le script pour faire une telle "liste blanche" des codes de sortie umount autorisés?
set -e
Sudo umount /drive || [ $? -eq 0 ]
echo do stuff
Si une telle technique existe, j'ai de nombreux cas d'utilisation.
Essayons ça:
if Sudo mount /drive; then
: # exit status 0
else
rc=$?
[ $rc -ne 127 ] && exit $rc
fi
Testez avec ceci - testez différentes valeurs pour status
env status=0 bash -e -c '
mycmd() { return $1; }
if mycmd $status; then
:
else
rc=$?
[ $rc -ne 127 ] && exit $rc
fi
echo OK
'
Vous pouvez utiliser une déclaration de cas pour mettre sur liste blanche ou effectuer une autre action.
Sudo umount /drive
case $? in
0)
;;
127)
;;
*)
echo 'bailing!'
exit 1
;;
esac
echo 'doing more stuff'