初めてbashでスクリプトを作成しています。ダイアログ付きのメニューを作成し、いくつかの機能を追加します。操作の実行中に--infoboxを表示したいので、ユーザーは何かが起こっていることを確認できます。
ターゲットは、次のようなダイアログボックスを持つことです。
dialog --infobox "Please wait" 10 30
スクリプトがpingを実行している間。pingが完了すると、-msgboxダイアログが開きます。
test_rtt() {
ipSlave=$(awk '{ if($1~/'$SETSLAVE'/) print $2 }' $VARPATH/$VARCONFIGFILE)
pingSlave=$(fping -c1 -t300 $ipSlave 2>/dev/null 1>/dev/null)
if ! [ "$?" = 0 ]
then
result="Loopbox (Slave) not found on $ipSlave"
dialog \
--backtitle "$VARBACKTITLE" \
--title "$1" \
--no-collapse \
--msgbox "$result" $VARMENUHEIGHT $VARMENUWIDTH
fi
nrtest=$(awk '{ if($1~/'$SETNRTEST'/) print $2 }' $VARPATH/$VARCONFIGFILE)
intervl=$(awk '{ if($1~/'$SETINTERVL'/) print $2 }' $VARPATH/$VARCONFIGFILE)
result=$(ping -c $nrtest -i $intervl -U 192.168.74.93 | tail -1) #(HERE I WANT THE INFOBOX)
dialog \
--backtitle "$VARBACKTITLE" \
--title "$1" \
--no-collapse \
--msgbox "$result" $VARMENUHEIGHT $VARMENUWIDTH
}
私があなたを正しく理解した場合、あなたはユーザーに「何かが起こっている」という合図を与えたいと思うでしょう。私は2つの解決策を作りました。あなたは彼らと遊ぶことができます。
$(fping..
dialog --progressbox
目は、ユーザーに表示される進行状況ボックスを作成するために使用します。コードを変更したので、8.8.8.8にpingを実行し、利用可能かどうかを確認します。
#!/bin/bash
test_rtt() {
dialog --infobox "Please wait" 10 30
pingSlave=$(fping -c5 -t300 8.8.8.8 2>/dev/null 1>/dev/null)
# What is reason for introducing pingSlave var :)?
if [ "$?" = 0 ]
then
result="Ping succeed for 8.8.8.8"
dialog \
--backtitle "test1" \
--title "test2" \
--no-collapse \
--msgbox "$result" 50 50
fi
}
test_rtt_2() {
fping -c5 -t300 8.8.8.8 | dialog --progressbox 50 50
if [ "$?" = 0 ]
then
result="Ping succeed for 8.8.8.8"
dialog \
--backtitle "test1" \
--title "test2" \
--no-collapse \
--msgbox "$result" 50 50
fi
}
test_rtt
dialog --clear
test_rtt_2
dialog --clear
これがあなたが期待したものであることを願っています:)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加