- 締切済み
メニュー画面よりコマンド実行して結果表示する
シェルスクリプトでメニュー選択画面より選択してコマンドを実行して結果を表示する。 エンターキーを押して再度メニューに戻る。 そういうスクリプト作成したいのですがうまくいきません。 下記では何が誤っていて不足しているのでしょうか? 正しい構文を教えて下さい。 ・・・誤りばかりと思いますがすいません。 #!/bin/bash PS3="メニューを選択して下さい。" select ans in "$ans1" "$ans2" "$ans3" "終了!"; do $ans1="ifconfig" $ans2="df " $ans3="netstat " if [ -z "$ans1" ]; then echo " $ans1." read ifconfig clear; while :; do echo -n "^[[1;1H"; ifconfig ; sleep 1; done if [ -z "$ans2" ]; then echo " $ans2." read df clear; while :; do echo -n "^[[1;1H"; df ; sleep 1; done if [ -z "$ans3" ]; then echo " $ans3." read netstat clear; while :; do echo -n "^[[1;1H"; netstat ; sleep 1; done else break fi case "$ans" in "終了!") break;; "") echo "終了";; *) esac done echo "Good bye."
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10361)
ぼろぼろで、何をしたいのか不明なので、部分的な指摘だけになります。 ifに対してのfiが足りません。 if ~ then ~ fi か、 if ~ then ~ else ~ fi のようにしてください。 あと、 select ans in "$ans1" "$ans2" "$ans3" "終了!"; do $ans1="ifconfig" $ans2="df " $ans3="netstat " は、おそらく、 ans1="ifconfig" ans2="df " ans3="netstat " select ans in "$ans1" "$ans2" "$ans3" "終了!"; do また、 if [ -z "$ans1" ]; then なども間違っていると思われますが、何をしたいのか不明なので、どう変えれば良い物か。 正直、「代入」とか「条件判断」の意味すらわかっていない人が書いたように見えます。