name=Ricardo
echo "Please enter your name: $name \c"
read newname
[ -n "$newname" ] && name=$newname
Установить значение по умолчанию; распечатать его; прочитать новое значение; если есть новое значение, используйте его вместо значения по умолчанию. Существуют (или были) некоторые различия между оболочками и системами в том, как подавить перевод строки в конце приглашения. Нотация \ c, кажется, работает на MacOS X 10.6.3 с 3.x bash и работает на большинстве вариантов Unix, производных от System V, с использованием оболочек Bourne или Korn.
Также обратите внимание, что пользователь, вероятно, не осознает, что происходит за кулисами; их новые данные будут введены после того, как имя уже на экране. Может быть, лучше отформатировать его:
echo "Please enter your name ($name): \c"
input
и затем использованиеname=${input:-$name}
.