Quel est le but de & as in &>
et &>>
in bash?
bash
bash-scripting
Âme perdue
la source
la source
Réponses:
Ils sont tous deux connectés à la redirection E / S, comme expliqué ici .
Dans le cas de
&>
, cela redirige la sortie standard (stdout) et la sortie d'erreur standard (stderr) vers un fichier. Par exemple, redirigeons la sortie de date vers un fichier comme celui-ci:Cela créerait ou écraserait un fichier portant le nom
foo.txt
de la sortiedate
. Et le contenu de ce fichier ressemblerait à ceci:Mais dans le cas de
&>>
cela, la sortie standard (stdout) et la sortie d'erreur standard (stderr) sont redirigées vers un fichier. Mais le>>
indique que le fichier désigné doit être ajouté et non écrasé s'il existe déjà.Donc, si j'ai exécuté cette commande plusieurs fois de suite:
Tout
foo.txt
aurait jamais été la sortie de la dernière fois que cette commande a été exécutée puisque l'unique>
indique que le contenu du fichier serait écrasé à chaque exécution de la commande.Mais si je lance cette commande
>>
plusieurs fois de suite:La
foo.txt
sortie de ce fichier seraitdate
ajoutée comme suit:Notez simplement que
&>>
cela ne semble pas fonctionner dans Bash 3.x, mais fonctionne comme prévu dans Bash 4.x.la source
Considérons une commande appelée
cmd
:Ce qui précède envoie à la fois la sortie standard de la commande et son erreur standard
filename
, en écrasant tout ce qui se trouvait auparavant dans ce fichier. Cela équivaut à:Le
&>>
formulaire est très similaire:Ceci ajoute les commandes stdout et stderr de cmd à tout ce qui était déjà dans le fichier
filename
. Cela équivaut à:Vous pouvez en savoir plus à ce sujet dans
man bash
.la source