Isso porque você está executando o read
em uma substituição de comando ( $()
). Não há necessidade disso. Apenas use:
read -p Enter -r rr
echo "Is $rr"
A sintaxe var=$(command)
definirá o valor de var
para o que for retornado por command
. O read
builtin não retorna nada (além de seu status de saída, mas isso não é relevante aqui), então sua variável permanece vazia. A sintaxe de read
é read VAR
e definirá o valor de $VAR
.