2017-05-28 14 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

"First Install")を交換してください。あなたの 'select'が私に役立ちます –

+1

実行しているコードを貼り付けてもよろしいですか?それは私のためにwoks。どちらの場合も、本当に "クライアント"を "Cilent"と綴っていましたか? – choroba

+0

@Dmitri Chubarovあなたは正しく入力されました – user2650277

答えて

1

誤植を避けるために、配列optionsの文字列をコード内で1回使用することをお勧めします。おそらくタイプミス、またはadd_client` `における問題:"${options[1]}")などにより"${options[0]}")"Add cilent")によって

#!/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 
関連する問題