Estoy tratando de conseguir bash para procesar los datos de stdin que se canaliza en, pero no hay suerte. Lo que quiero decir es que ninguno de los siguientes trabajos:
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=
donde quiero que la salida sea test=hello world
. I'he intentado poner "" comillas alrededor de `"$test"que doesn't trabajo tampoco.
read
no leerá desde una tubería (o posiblemente el resultado se pierda porque la tubería crea un subshell). Sin embargo, puede utilizar una cadena de aquí en Bash:
$ read a b c <<< $(echo 1 2 3)
$ echo $a $b $c
1 2 3
Pero vea la respuesta de @chepner'para información sobre lastpipe
.