Ao atribuir um valor a path
, deixe o primeiro sinal $
no primeiro loop while.
Você só precisa fazer: path=$http_path
.
Editar
Eu só percebi depois que postei que você também quer recursos para aprender bash. Eu pessoalmente achei o Guia Avançado de Roteiro de Bash útil. É um pouco datado, se bem me lembro, mas é mais do que suficiente. Também #bash
no Freenode é um ótimo lugar. Eles nem sempre são os mais amigáveis, mas são definitivamente extraordinariamente qualificados.
Além disso, nunca tenha medo de testar algo na linha de comando. Esse é o seu interpretador interativo (se você fez alguma programação em Ruby ou Python).
Editar 2
O problema real era que depois de digitar, o usuário não sairia do loop, então o código precisava ser alterado para:
while read path; do
if [ -z "${path}" ]; then
clear
echo "Are you sure you would like to ..."
read prompt
if [ -n "${prompt}" ] ; then
continue
fi
path=$http_path
break
else
# etc.
fi
done