Standart Girdinin sonunu gösteren


12

Kişi teste girmeyi bitirdiğini nasıl gösterir?

Örneğin, MD5'i kullanarak 'mavi'yi şifrelemek istediğimi varsayalım (MD5'in güvenli olmadığını biliyorum, ama sadece bu örnek için). denedim

user$ blue | md5

hangi boruların stdin'e girdiğini anladım, ama doğru çalışmıyor.

Ama eğer girersem

user$ md5

'Mavi' kelimesini girebilirim. Ama md5'e metin girmeyi bitirdiğimi nasıl gösterebilirim?


2
İlk denemeniz muhtemelen düzgün çalışmadı çünkü blueyankılanmak yerine bir komut olarak yürütmeye çalışıyordunuz . echo blue | md5Bunun yerine deneyin .
Trey Hunner

Yanıtlar:


16

bir metin parçası için md5sum almaktan mı bahsediyorsun?

öyleyse md5sum komutunu çalıştırın

bitirdiğinizde metninizi yazın, return tuşuna basarak yeni bir satıra gidin

girişinizi sonlandırmak için CTRL-D tuşlarına basın.

 user$ md5sum
 blue
 CTRL-D

6
Bu doğru cevap. Ctrl-D, herhangi bir kabuk komutunda klavye stdin'ini sonlandırmanın standart yoludur. Ama garip bir şekilde, ilk Ctrl-D'de sona ermeyen sistemimde (Mac OS Xv10.6.3) belirsiz bir kökenli, ama muhtemelen OpenSSL'den - bir / sbin / md5 var. Sonlandırmak için ikinci bir Ctrl-D gerekir. İle aynı openssl md5.
Spiff

4
@Spiff: Son satır sonunu atlamak istiyorsanız yalnızca iki ^ D'ye ihtiyacınız vardır. Son satırsonu kabul edebilirseniz (veya gerekirse), yeni satırda tek bir ^ D yeterlidir. EOF karakteri (^ D) arabelleğe alınan girişi temizler. Tamponlanmış bir girdi yoksa, tty'den yapılan işlem sıfır uzunluklu bir okuma (yani EOF) alır. Bakınız (örn.) POSIX XRAT 11.1.9, EOF ; Linux terimlerinde VEOF ; veya FreeBSD terimlerinde EOF .
Chris Johnsen

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.