bash
ne semble pas se plaindre si vous exécutez une commande comme
$ < some-file-that-exists
Rien ne semble arriver.
Vous pouvez également utiliser
$ <<<"any string"
et même la substitution de processus.
Alors, qu'est-ce que cela fait exactement et pourquoi est-ce autorisé? Cela pourrait-il être utile pour quelque chose?
<
vous donnera une erreur (zsh: parse error near `\n'
) car aucun argument n'est donné.bash
, mais c'est intéressantless
.Réponses:
<
configure la redirection pour une commande qui peut se produire avant ou après les instructions de redirection. C'est à direfonctionne aussi bien que
Mais si vous ne donnez pas de commande, bash configure la redirection et ne fait rien d'autre. Pour la redirection d'entrée, cela revient à ce que vous avez vu, rien, si le fichier existe et est lisible. Si le fichier n'existe pas ou n'est pas lisible, bash signalera une erreur. Pour la redirection de sortie, le fichier de sortie sera créé s'il n'existe pas. Tout fichier de sortie existant sera tronqué s'il
>
est utilisé; aucune troncature si>>
est utilisée.la source
< file wc
vswc < file
?<lit depuis stdin par défaut, ou un fichier. votre expression ne fait rien avec l'entrée car vous n'avez rien fait après la lecture.
si vous faites le fichier de sortie <some-file-that-exist> à la fin, alors vous verrez que vous venez de lire le contenu du premier fichier et de l'écrire dans le deuxième fichier.
<<< est ici au format doc, donc il lit à partir d'une chaîne au lieu d'un fichier. cat <<< "n'importe quelle chaîne" pour voir ce que vous avez lu.
la source