Komut satırı: <<< yerine <<<


63

Neden komut md5sum <<< 'ddd' (çıktı:) d6d88f2e50080b9602da53dac1102762 -doğru md5sum << 'ddd'değil mi?

Ne <<<demek istiyorsun?

Yanıtlar:


45

<<<Başlar bir “Burada dizesi”: string genişletilmiş ve programın stdin'e beslenir. (Sizin durumunuzda, pek fazla genişleme olmuyor.) Buna eşdeğer:

echo ddd | md5sum

Öte yandan, <<burada bir belge başlatır. İşaretleyiciyi içeren birine kadar aşağıdaki tüm satırlar dddprogramın girişini içerecektir. (Verilerinizde görünmesi muhtemel olmayan bir işaretleyici kullanmalısınız.) Yukarıdaki gibi aynı etkiyi elde edebilirsiniz:

md5sum <<END
ddd
END

Arasında bir fark vardır <<ENDve <<'END'her zamanki gibi genişletilecektir tırnak olmadan, herhangi bir değişken, burada belgede vb dizileri kaçış:.


3
Eşdeğer olmadığı durumlarda rc, <<<(like <<) 'nin geçici bir dosya kullanması dışında lseekkendi stdin komutları tarafından kullanılabilir .
Stéphane Chazelas

32

<<<here dizesini tanıtır : sondaki <<<komut komuta girdi olarak iletilir. Bu, Byron Rakitzis'in Unix'e rc(bir Plan 9 kabuğu) olan limanından kaynaklanır ve ayrıca zsh, ksh93 ve bash'ta bulunur.

<<burada bir belge tanıtır : kabuk betiğinin sonraki satırları komuta girdi olarak iletilir ve sonraki <<sonlandırıcıdır. Burada tüm Bourne tarzı mermilerde (Bourne, POSIX, kül, bash, ksh, zsh,…), C tarzı mermiler (csh, tcsh) ve Plan 9 mermilerinde (rc, es) çalışılmaktadır.


3
Hayır, <<<bir kshuzantı değil , yol rc-> zsh-> ksh93-> bash( kshnotu bir defa ödünç aldığınızı onaylayan notlar zsh). <<ayrıca rcstil kabukları ile de çalışıyor
Stéphane Chazelas

Orada arasındaki fark rcve zsh <<<olsa olmasıyla rcbir arka satır karakteri içermez s ve geçici bir dosya kullanmaz (bir boru ve en az Linux limanda beslemek İlave işlemi kullanır).
Stéphane Chazelas

Daha kesin olmak gerekirse , Plan9'daki gibi görünmediği <<<için Unix limanından geliyor gibi görünüyor . rcrc
Stéphane Chazelas
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.