Comment stocker une erreur standard à une variable dans Bash

Comment stocker une erreur standard à une variable dans Bash

Dans Bash, vous pouvez stocker la sortie d'erreur standard d'une commande à une variable en utilisant le '2> & 1' opérateur et le '$ ()' Syntaxe de substitution de commande. Ici '2>' redirige le message d'erreur vers &1', qui représentent la sortie standard. Dans le cas de Bash Shell fonctionne comme le dispositif de sortie standard.

  • Par exemple, pour stocker la sortie d'erreur standard du 'LS' Commande à une variable nommée Erreurs, vous pouvez utiliser la commande suivante:
    erreurs = $ (ls non existant-fichier 2> & 1)  
    Stocker une erreur standard dans une variable bash

    Alternativement, vous pouvez utiliser le '$?' Paramètre spécial pour stocker l'état de sortie d'une commande à une variable. Le statut de sortie est une valeur numérique qui indique si la commande a réussi ou non. Une valeur de '0' indique le succès, tandis qu'une valeur non nulle indique une erreur.

  • Par exemple, pour stocker le statut de sortie du 'LS' Commande à une variable nommée Status, vous pouvez utiliser la commande suivante:
    ls inexistant  statut = $?  
  • Vous pouvez ensuite utiliser le '$ statut' variable pour vérifier l'état de sortie du 'LS' commander et prendre les mesures appropriées en fonction du résultat. Par exemple: #!/ usr / bin / env bash # pur vos commandes ici si [$ status -ne 0]; Puis écho "La dernière commande a échoué avec une erreur." Fi
    123456#!/ usr / bin / env bash # pur vos commandes iciif [$ status -ne 0]; Puis écho "La dernière commande a échoué avec une erreur."Fi

Gardez à l'esprit que le '$ ()' La syntaxe de substitution de commande vous permet d'exécuter une commande et de remplacer sa sortie en place. Le '2>' L'opérateur redirige la sortie d'erreur standard de la commande vers le '&1' Stream, qui est le flux de sortie standard. Cela vous permet de capturer à la fois la sortie standard et la sortie d'erreur standard de la commande dans une seule variable.