Usando o read construído em shell, você pode ler dados de stdin e armazenar a entrada de leitura nas variáveis do shell:
$ echo foo bar baz | read a b c
$ echo $a
foo
$ echo $b
bar
$ echo $c
baz
Como você pode ver, read splits é inserido nos campos. Onde a entrada é dividida é determinada pela variável $IFS (o Input Field Seperator ). Ao definir $IFS para o valor vazio, a divisão de entrada é desativada e você pode salvar uma linha completa em uma variável:
$ echo foo bar baz | IFS= read foo
$ echo $foo
foo bar baz