0
我想用inputInfo()方法獲取用戶輸入的詳細信息,每次用戶在菜單頁按下1。問題在於第一輪投入後。如果我想輸入另一個人的記錄,它將繼續打印出前面的記錄。獲取用戶輸入 - shell編程
我想用inputInfo()方法獲取用戶輸入的詳細信息,每次用戶在菜單頁按下1。問題在於第一輪投入後。如果我想輸入另一個人的記錄,它將繼續打印出前面的記錄。獲取用戶輸入 - shell編程
您的while循環在初始情況下有效,因爲您讀入的變量有效地反映了您的while循環條件,所以從不會調用提示,因爲$ name包含上一次運行的有效值。
inputInfo() {
nameRegex="[0-9]"
name=""
while [[ !$name =~ $nameRegex || -z $name ]]; do
echo "Enter name"
read name
if [[ $name =~ $nameRegex || -z $name ]]; then
echo "Name can only contain numbers or blank"
fi
done
您可以設置讀取變量以使while循環中的條件失效。將它們設置爲如上所述的零值將解決您的問題。
感謝您的幫助 – user2211678