FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ubuntu 10.10 ネットワークの接続を通知するスクリプト

ネットワークマネージャを削除したので、接続を通知するスクリプトを書いてみました。
まぁ、wicdとか入れてみればいいんでしょうが・・・。

#!/bin/bash
# バックグラウンドで通知アイコンを生成
exec 3> >(zenity --notification --window-icon\
/usr/share/pixmaps/gnome-irc.png --listen --text\
'ネットワーク接続中...')

# 接続まで1秒ずつ100秒間チェックして通知
count=0
while test $count -lt 100
do
r="`ifconfig | grep 192.168.11.`" # 接続先のIPアドレス
if test -n "${r}"
then
echo "message:ネットワークに接続しました。" >&3
break
else
if test `expr ${count} % 20` -eq 0
then
echo "message:ネットワークに接続中..." >&3
fi
fi
count=`expr ${count} + 1`
sleep 1
done

# 接続の失敗を通知
if test $count -eq 100
then
echo "message:ネットワークの接続に失敗しました。" >&3
fi

# 通知アイコンの削除
exec 3>&-


結構シェルスクリプトの書き方が難しくて、手間取ってしまいました。
簡単にシェルスクリプトの書き方をメモ。

・変数は「変数名=値」で定義。shでは変数名と=の間にスペースを入れるとダメらしい。
・execの使い方は難しいのでこういうものということで・・・。bashじゃないと今回のような書き方はできないようです。
・変数にコマンドの実行結果を入れたい場合は「変数名=`echo aaa`」のように書く。日本語キーボードだと@(アットマーク)のshiftキー押しながらで出すやつです。
・if文やwhile文の条件は、前に「test」をつける。
・数値計算は「expr」コマンドを使う。
・通知領域へのスタックは最大50個までしか積めない。つまり、連呼すると通知が終わらない・・・。

デスクトップの通知領域に表示するときはzenityコマンドを使うと便利なようです。

コメントの投稿

管理者にだけ表示を許可する

プロフィール

sin

ニックネーム:sin

趣味でプログラムの作成などをしています。

Google+1
最新記事
カテゴリ
検索フォーム
リンク
最新コメント
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。