Respostas:
Você escreveria isto:
read -p "enter a value: " -i default -e answer
echo "you answered: $answer"
-i default
especifica a resposta padrão. -e
ativa o modo interativo (edição) para read
. Sem essa opção, a resposta padrão não funciona. Então, não pode editar o valor padrão com bash 3.2. Você poderia fazer isso:
default="the default value"
read -p "your answer [default=$default] " answer
: ${answer:=$default}
echo "you answered: $answer"
Isso usa o valor padrão se o usuário não inserir nada (string vazia)
Referência ler - ler uma linha da entrada padrão :
Este é um shell BASH embutido.
Uma linha é lida da entrada padrão e a primeira palavra é atribuído ao primeiro nome, a segunda palavra ao segundo nome, e assim em diante, com as palavras restantes e seus separadores intervenientes atribuídos a o ultimo nome.
Se houver menos palavras lidas da entrada padrão do que nomes, os nomes restantes são atribuídos a valores vazios.
Os caracteres no valor da variável IFS são usados para dividir o linha em palavras.
O caractere de barra invertida `\ 'pode ser usado para remover qualquer significado especial para o próximo caractere lido e para continuação de linha.
Se nenhum nome for fornecido, a linha lida é atribuída à variável RESPOSTA. O código de retorno é zero, a menos que o fim do arquivo seja encontrado ou leia o tempo limite.
Exemplos
#!/bin/bash
read var_year
echo "The year is: $var_year"
echo -n "Enter your name and press [ENTER]: "
read var_name
echo "Your name is: $var_name"