После «Введите имя сервера» и установки $servselect
переменная в скрипте ниже переменная теряется после выбора параметров «Привет» и «До свидания». Для этого необходимо снова заполнить запрос «Введите имя сервера». Есть ли способ сохранить эту переменную до полного выхода из скрипта? Любой совет будет очень признателен.
#!/bin/bash
#
while true; do
read -p "Enter server name: " servselect
servselect=${servselect:-servselect}
echo $servselect has been selected!
printf '%s\n' \
"" \
"[A] Hello" \
"[B] Goodbye" \
"[Q] Quit" \
""
read -n1 -p 'Enter response here:' response
case $response in
[Aa]* )
printf '%s\n' \
"" \
"Hello, $servselect" \
""
;;
[Bb]* )
printf '%s\n' \
"" \
"Goodbye, $servselect" \
""
;;
[Qq]* )
printf '%s\n' \
"" \
"Quitting..." \
""
break
;;
* )
printf '%s\n' \
"" \
"Please choose A, B, or Q" \
""
;;
esac
done
Вы устанавливаете его внутри цикла, поэтому он будет постоянно предлагать вам это.
У меня было бы два цикла: один для запроса имени сервера и продолжения запроса до тех пор, пока не будет предоставлено действительное значение, а затем для выполнения варианта A или B или выхода.
По таким вопросам чистого программирования, как этот, вам может быть лучше спросить на stackexchange