Bash

while循環期間維護讀取變數的方法

  • July 4, 2017

在“輸入伺服器名稱”並$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

您將其設置在循環內,因此它將不斷提示您。

我將有兩個循環 - 一個用於提示輸入伺服器名稱並一直提示直到提供有效值,然後一個用於執行選項 A 或 B 或退出。

對於像這樣的純程式問題,您最好在 stackexchange 上提問

引用自:https://serverfault.com/questions/859188