1)私はこのようなUnixスクリプトを書くのが好きです
echo "Do u want to check application logs ???"
select opt in Yes No
do
case $opt in
"Yes")
commmands
;;
"No")
break
;;
esac
done
echo "Do u want to check non-application logs ???"
select opt in Yes No
do
case $opt in
"Yes")
commmands
;;
"No")
break
;;
esac
done
最初の部分を実行した後に終了し、同じ内容を続けて尋ね、他の部分であるアプリケーション以外のログに移動しません。
2)Unixシェルスクリプトで2つのselect文と2つのCase文を使用できますか?もしそうなら構文を教えてください。
答え1
bash
ヘルプからselect
:
選択:名前の選択[Word ... ;]コマンドの実行、完了
...
コマンドは、割り込みコマンドが実行されるまで各選択の後に実行されます。
break
break
そこにあるコマンドはではcase
ありません。ブロックの外側に1つを入れる必要がselect
あります。break
case
たとえば、
echo "Do u want to check application logs ???"
select opt in Yes No
do
case $opt in
"Yes")
commmands
;;
esac
break
done
また、ここにはcase
タスクが1つだけなので、そのタスクも使用できますが、if
そのかどうかはユーザーに任せます。