J'écris un script bash et j'ai errexit
ensemble, de sorte que le script va mourir si une commande ne retourne pas un code de sortie 0, c'est-à-dire si une commande ne se termine pas avec succès. C'est pour s'assurer que mon script bash est robuste.Bash Script - démonte un périphérique, mais n'échoue pas s'il n'est pas monté?
Je dois monter certains systèmes de fichiers, copier certains fichiers, le démonter. Je suis en train de mettre un umount /mnt/temp
au début pour qu'il se démonte avant de faire quoi que ce soit. Cependant, s'il n'est pas monté, umount échouera et arrêtera mon script. Est-il possible de faire un umount --dont-fail-if-not-mounted /mnt/temp
? Alors qu'il retournera 0 si le périphérique n'est pas monté? Comme rm -f
?
et redirige la sortie vers/dev/null: umount ...>/dev/null 2> & 1 ||/bin/true – knittl
Eh bien, c'est un peu situationnel. Il est facile d'imaginer un script qui souhaite continuer, mais laisser des messages d'erreur dans le flux de journalisation. –
Vous pouvez rendre ceci un peu plus rapide en utilisant la pseudo-commande ':' (un shell intégré) au lieu de/bin/true (qui crée un nouveau processus). C'est-à-dire, utilisez "' umount .... ||: '" –