J'ai été chargé de créer un script de renforcement automatique du serveur et une chose dont ils ont besoin est un rapport de toutes les sorties de chaque commande exécutée. Je veux stocker le message d'erreur dans une chaîne et l'ajouter dans un fichier texte.
Disons que j'ai exécuté cette commande:
/sbin/modprobe -n -v hfsplus
Le résultat de l'exécution de ceci dans ma machine serait:
FATAL: Module hfsplus not found
Comment puis-je stocker ce message d'erreur dans une chaîne? Toute aide serait grandement appréciée. Merci!
Réponses:
vous pouvez le faire en redirigeant la commande des erreurs:
comme script
ou
si vous souhaitez ajouter l'erreur, utilisez
>>
plutôt que>
Assurez-vous d'utiliser
2>&1
et de ne2> &1
pas éviter l'erreur "erreur de syntaxe près du jeton inattendu` & '"la source
Simplement pour stocker en tant que chaîne dans le script bash:
Cela peut être un peu mieux car vous verrez des messages lorsque la commande est exécutée:
la source
Je capture une erreur comme celle-ci
si la source a échoué, je vais capturer l'erreur et l'enregistrer. log_warn n'est qu'une simple fonction.
BTW, j'utilise ceci dans mes fichiers dot
la source
Pour ajouter à un fichier, utilisez
/sbin/modprobe -n -v hfsplus 2>> filename
la source
Versions bash plus récentes (ie bash 4.1+):
la source
Pour renvoyer le message d'erreur dans une variable, simplement;
la source