私はいくつかのスクリプトを必要とするこのメニューを書きました。スクリプトの1つは
dbus-monitor --system
したがって、dbusのリアルタイムトラフィックを表示します。
しかし、終了したいときは通常Ctrl+を使用しますCが、これも私のメニューを終了して私のメニューに戻りたいと思います。
シャットダウンが検出されたら、メニューを再起動するためにdbus-moniterの後ろに置くことができるコードはありますか?私のメニューは別の.shスクリプトです。
または…。
- - - - - - - - - 説明 - - - - - - - - -
私は「まだ」スクリプトに精通していません。これは dbus スクリプトを呼び出すメニューです。
select opt in "dbus Live Traffic" "option 2" "Main menu" "Quit"
do
case $opt in
"dbus Live Traffic")
curl -s -u lalala:hihihi ftp://ftp.somewhere.com/folder/dbuslivetraffic.sh | bash ;;
"option 2")
do_something ;;
"Main menu")
main_menu;;
"Quit")
quit_menu;;
esac
if [[ $opt != "Main menu" ]] || [[ $opt != "Quit" ]] ;
then
main_menu
fi
done
これは私のdbuslivetraffic.shの内容です。
dbus-monitor --system
現在はこの行だけですが、近いうちにこのスクリプトにさらにコードが追加されます。
TRAP
@RoVoが提案したのと同じ機能をどこに置くべきかは本当にわかりません。
ベストアンサー1
サブシェルでコマンドを実行し、実行中のサブシェルのtrap
プロセスグループのみを終了できます。SIGINT
kill 0
select opt in a b; do
case $REPLY in
1)
(
trap "kill -SIGINT 0" SIGINT
sleep 10
)
;;
2)
sleep 10
;;
esac
done
- (1)を選択すると、メニューを終了せずに Ctrl+を使用できます。c
- (2)を選択してCtrl+を押してもcメニューが終了します.