Bash'in stdin'den gelen verileri işlemesini sağlamaya çalışıyorum, ancak başarılı olamıyorum. Demek istediğim, aşağıdakilerin hiçbiri çalışmıyor:
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=
Burada çıktının test=hello world
olmasını istiyorum. "$test"` etrafında "" tırnak işareti koymayı denedim, bu da işe yaramadı.
'read' bir borudan okuma yapmaz (ya da boru bir alt kabuk oluşturduğu için sonuç kaybolur). Bununla birlikte, Bash içinde bir here dizesi kullanabilirsiniz:
$ read a b c <<< $(echo 1 2 3)
$ echo $a $b $c
1 2 3
Ancak `lastpipe' hakkında bilgi için @chepner'ın yanıtına bakın.