1 votes

A ajouté une virgule par erreur après une commande - qu'a-t-elle fait ?

Ma question n'est (heureusement) pas particulièrement importante mais j'aimerais connaître la réponse de toute façon. J'aime toujours apprendre quelque chose de nouveau.

J'utilise fish comme shell par défaut et je voulais taper la commande suivante:

bash -c 'cat /home/rosika/update.txt | grep "<"'

Après avoir exécuté un certain script au préalable, cette commande me donne la liste des changements après une récente mise à jour du système.

Par maladresse, j'ai involontairement ajouté une virgule à la fin de la commande:

bash -c 'cat /home/rosika/update.txt | grep "<"',

La commande prévue ne semble pas avoir été exécutée du tout et la valeur de retour était "1":

echo $status # équivaut à "echo $?" en bash

1

Je voudrais donc simplement savoir: que fait exactement la virgule ajoutée? Merci beaucoup pour votre aide à l'avance.

Beaucoup de salutations.

Rosika

P.S.:

mon système: Linux/Lubuntu 18.04.5 LTS, 64 bits

2voto

steeldriver Points 118154

Il a simplement recherché la chaîne >, au lieu de >

 ~> bash -xc 'echo foo | grep "foo"',
+ echo foo
+ grep foo,

Le statut de sortie était non nul car grep n'a pas trouvé de correspondance.

 ~> bash -c 'echo foo, | grep "foo"',
foo,
 ~> echo $status
0

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X