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

  • Elly

    Elly

    3 EKİM 2005
  • Ricardo Cerqueira

    Ricardo Cerq

    28 Mayıs 2008
  • TechBalance

    TechBalance

    12 HAZİRAN 2011