2017-05-28 112 views
0

我有以下選擇菜單。選擇案例菜單不起作用

#!/bin/bash 
PS3='Please enter your choice(1-4): ' 
options=("First Install" "Add cilent" "Delete Cilent" "Quit") 
select opt in "${options[@]}" 
do 
    case $opt in 
     "First Install") 
      newinstall 
      break 
      ;; 
     "Add cilent") 
      add_client 
      break 
      ;; 
     "Delete Cilent") 
      delete_client 
      break 
      ;; 
     "Quit") 
      break 
      ;; 
     *) echo invalid option;; 
    esac 
done 

的問題是,當我進入2我得到invalid option消息,而所有其他的情況下工作。

+1

可能是一個錯字,或'add_client'問題。你的'select'適用於我 –

+1

你確定你粘貼了你正在運行的代碼嗎?它爲我着迷。在這兩種情況下,你真的把「客戶」拼寫成「沉默」嗎? – choroba

+0

@Dmitri Chubarov你是對的這是一個錯字 – user2650277

回答

1

爲避免輸入錯誤,我建議在代碼中只使用一次數組options。通過"${options[0]}")"Add cilent")通過"${options[1]}")等更換"First Install")

#!/bin/bash 

PS3='Please enter your choice(1-4): ' 
options=("First Install" "Add cilent" "Delete Cilent" "Quit") 

select opt in "${options[@]}" 
do 
    case $opt in 
    "${options[0]}") 
     newinstall 
     break 
     ;; 
    "${options[1]}") 
     add_client 
     break 
     ;; 
    "${options[2]}") 
     delete_client 
     break 
     ;; 
    "${options[3]}") 
     break 
     ;; 
    *) echo invalid option;; 
    esac 
done