Lese inn verdier i en shell-variabel fra en pipe
Jeg prøver å få bash til å behandle data fra stdin som blir pipet inn, men uten hell. Det jeg mener er at ingen av følgende fungerer:
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=
der jeg vil at utdataene skal være test=hello world
. Jeg' har prøvd å sette "" anførselstegn rundt "$test"
som heller ikke fungerer.
193
3
read` vil ikke lese fra en pipe (eller muligens går resultatet tapt fordi pipen oppretter et subshell). Du kan imidlertid bruke en her-streng i Bash:
Syntaksen for en implisitt pipe fra en shell-kommando til en bash-variabel er følgende
eller
I eksemplene dine sender du data til en assignment-setning, som ikke forventer noen input.
Piping av noe inn i et uttrykk som involverer en oppgave, oppfører seg ikke slik.
Prøv i stedet: