2016-10-22 3 views
0

誰かが私の質問を手伝ってくれることを願っています。ダイアログ:オプションの実行後にメニューを表示

以下のコードと同じ結果が得られますが、代わりにダイアログを使用したいと思います。

#!/bin/bash 
PS3='Please enter your choice: ' 
options=("Option 1" "Option 2" "Option3" "Quit") 
select opt in "${options[@]}" 
do 
    case $opt in 
     "Option 1") 
      sudo apt-get update 
      ;; 
     "Option 2") 
      echo "you chose choice 2" 
      ;; 
     "Option 3") 
      echo "you chose choice 3" 
      ;; 
     "Quit") 
      break 
      ;; 
     *) echo invalid option;; 
    esac 
done 

ダイアログのコード下記参照してください。

#!/bin/bash 

HEIGHT=15 
WIDTH=40 
CHOICE_HEIGHT=4 
BACKTITLE="Backtitle here" 
TITLE="Title here" 
MENU="Choose one of the following options:" 

OPTIONS=(1 "Option 1" 
     2 "Option 2" 
     3 "Option 3") 

CHOICE=$(dialog --clear \ 
       --backtitle "$BACKTITLE" \ 
       --title "$TITLE" \ 
       --menu "$MENU" \ 
       $HEIGHT $WIDTH $CHOICE_HEIGHT \ 
       "${OPTIONS[@]}" \ 
       2>&1 >/dev/tty) 

clear 
case $CHOICE in 
     1) 
      sudo apt-get update 
      ;; 
     2) 
      echo "You chose Option 2" 
      ;; 
     3) 
      echo "You chose Option 3" 
      ;; 
esac 

基本的には例えばオプション1を選択した後、私は再び同じメニューが表示取得したいと思います。

ご迷惑をおかけして申し訳ありません。

大切にしてください。

答えて

1

あなたは素晴らしい、私はそれを見つけた

#!/bin/bash 

HEIGHT=15 
WIDTH=40 
CHOICE_HEIGHT=4 
BACKTITLE="Backtitle here" 
TITLE="Title here" 
MENU="Choose one of the following options:" 

OPTIONS=(1 "Option 1" 
     2 "Option 2" 
     3 "Option 3" 
     4 "Quit") 

while [ "$CHOICE" -ne 4 ]; do 
    CHOICE=$(dialog --clear \ 
        --backtitle "$BACKTITLE" \ 
        --title "$TITLE" \ 
        --menu "$MENU" \ 
        $HEIGHT $WIDTH $CHOICE_HEIGHT \ 
        "${OPTIONS[@]}" \ 
        2>&1 >/dev/tty) 

    clear 
    case $CHOICE in 
      1) 
       sudo apt-get update 
       ;; 
      2) 
       echo "You chose Option 2" 
       ;; 
      3) 
       echo "You chose Option 3" 
       ;; 
    esac 
done 
+0

こんにちはgalra、あなたの親切な助けをたくさんありがとう。 – albertone74

+0

私はあなたのコードを試しましたが、このエラーメッセージが表示されています: – albertone74

+0

./test.sh:15行目:[:-ne:単項演算子が期待して – albertone74

1

whileループの中にダイアログのセクションを挿入することができます。 ""

$CHOICE -ne 4 

に欠けているように、正しいラインは次のとおりです。

while [ "$CHOICE -ne 4" ]; do 

ありがとうございました!多くは高く評価しました!

関連する問題