Indiquer la fin de l'entrée standard


12

Comment peut-on indiquer que l'on a fini d'entrer dans le test dans stdin?

Par exemple, disons que je souhaite chiffrer «bleu» à l'aide de MD5 (je sais que MD5 n'est pas sécurisé, mais juste pour cet exemple). j'ai essayé

user$ blue | md5

ce que j'ai été amené à comprendre, c'est comment un canal d'entrée à stdin, mais cela ne fonctionne pas correctement.

Mais si je viens d'entrer

user$ md5

Je peux saisir le mot «bleu». Mais comment indiquer à md5 que j'ai fini de saisir du texte?


2
Votre première tentative n'a probablement pas fonctionné correctement car vous tentiez de l'exécuter en bluetant que commande au lieu de l'écho. Essayez echo blue | md5plutôt.
— Trey Hunner

Réponses:


16

parlez-vous d'obtenir une somme md5 pour un morceau de texte?

si c'est le cas, exécutez la commande md5sum

tapez votre texte, lorsque vous avez terminé, passez à une nouvelle ligne en appuyant sur la touche Entrée

appuyez sur CTRL-D pour terminer votre saisie.

 user$ md5sum
 blue
 CTRL-D

6
C'est la bonne réponse. Ctrl-D est la manière canonique de terminer le clavier stdin dans n'importe quelle commande shell. Mais étrangement, j'ai un / sbin / md5 - d'origine indéterminée, mais probablement d'OpenSSL - sur mon système (Mac OS X v10.6.3) qui ne se termine pas sur le premier Ctrl-D. Il faut un deuxième Ctrl-D pour le terminer. Même chose avec openssl md5.
— Spiff

4
@Spiff: Vous ne devriez avoir besoin que de deux ^ D si vous voulez omettre la nouvelle ligne finale. Si vous pouvez accepter (ou avoir besoin) la nouvelle ligne finale, alors un seul ^ D sur une nouvelle ligne devrait suffire. Le caractère EOF (^ D) vide l'entrée en mémoire tampon. S'il n'y a pas d'entrée tamponnée, la lecture du processus à partir du tty obtient une lecture de longueur nulle (c'est-à-dire EOF). Voir (par exemple) POSIX XRAT 11.1.9, EOF ; VEOF dans les termios Linux ; ou EOF dans les termios FreeBSD .
— Chris Johnsen

0

Dans votre premier exemple, vous avez besoin d'un echo:

user$ echo "blue" | md5

C'est inutile. L'idée était, toutes les entrées sont pressées par le clavier. Le problème était de savoir comment marquer la fin du flux.
— Znik
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.