SORU
30 NİSAN 2010, Cuma


Bash, stdin boru değerleri senaryoyu oku

Bash borulu alır standart girdiden veri işlemek için almak için çalışıyorum, ama ne demek istediğimi hiç şans, aşağıdaki iş yok

echo "hello world" | test=($(< /dev/stdin)); echo test=$test
test=


echo "hello world" | read test; echo test=$test
test=


echo "hello world" | test=`cat`; echo test=$test
test=

çıkış test=hello world olmak istediğim yer. Koyarak denedim not", " ya işe yaramazsa "$test" tırnak.

CEVAP
21 Temmuz 2011, PERŞEMBE


Kullanın

IFS= read var << EOF
$(foo)
EOF

Sanaolabilirbu gibi: bir borudan kabul ettirmek için read hile

echo "hello world" | { read test; echo test=$test; }

hatta böyle bir fonksiyon yazın

read_from_pipe() { read "$@" <&0; }

Ama bir anlamı yok no - değişken atamaları son değil! Bir boru hattı çevre referans değer tarafından değil, kalıtsal bir kabuk spawn olabilir. Bu read bir borudan giriş ile rahatsız etmiyor yüzden tanımsız.

BİLGİNİZE, http://www.etalabs.net/sh_tricks.html işe yaramayan öğeleri şık bir koleksiyon bourne kabuğu tuhaflıklar ve uyumsuzluklar mücadele için gerekli, sh.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • karneson

    karneson

    23 Temmuz 2006
  • Tire Rack

    Tire Rack

    31 Mayıs 2007