在“输入服务器名称”并$servselect
在下面的脚本中设置变量后,选择“Hello”和“Goodbye”选项后,变量会丢失。这需要再次完成“输入服务器名称”提示。有没有办法保持该变量直到脚本完全退出?任何建议都将不胜感激。
#!/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
答案1
您正在循环内设置它,因此它会不断提示您。
我会有两个循环 - 一个用于提示服务器名称并一直提示直到提供有效值,然后一个用于执行选项 A 或 B 或退出。
对于像这样的纯编程问题,你最好在 stackexchange 上提问