2013-10-25 55 views
0

我想用inputInfo()方法獲取用戶輸入的詳細信息,每次用戶在菜單頁按下1。問題在於第一輪投入後。如果我想輸入另一個人的記錄,它將繼續打印出前面的記錄。獲取用戶輸入 - shell編程

回答

1

您的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循環中的條件失效。將它們設置爲如上所述的零值將解決您的問題。

+0

感謝您的幫助 – user2211678