Script Bash magasin de sortie de la commande dans la variable
J'ai un problème concernant le stockage de la sortie d'une commande à l'intérieur d'une variable dans un script bash.
Je sais que en général il y a deux façons de le faire
soit
foo=$(bar)
# or
foo=`bar`
mais pour la version Java de la requête, cela ne semble pas fonctionner.
J'ai fait:
version=$(java --version)
Ce n'est pas de stocker la valeur à l'intérieur de la var. Il est même encore imprime, qui vraiment ne devrait pas être le cas.
J'ai aussi essayé de rediriger la sortie vers un fichier, mais cela échoue également.
- il y a plus de deux manières. lire foo < <( echo "ceci est un autre chemin"), mais ceci est sans rapport avec votre problème avec la capture de la sortie d'erreur, la réponse déjà.
Vous devez vous connecter pour publier un commentaire.
La version param ne prend qu'un seul tableau de bord, et si vous rediriger stderr, qui est, d'où le message est écrit, vous obtiendrez le résultat souhaité.
Au passage, à l'aide de deux tirets est un inofficial standard sur les systèmes Unix, mais depuis Java essaie d'être presque identiques sur différentes plates-formes, il viole les Unix/Linux-attentes et se comporte de la même à cet égard que sur windows, et que je soupçonne, sur Mac OS.
C'est parce que
java -version
écrit àstderr
et passtdout
. Vous devez utiliser:Dans le but de rediriger
stderr
àstdout
.Vous pouvez le voir en exécutant les 2 commandes suivantes: