スクリプトを引数形式に改造する[私的mydns.jpの更新スクリプト]
どっちが良いのかは、はっきりとはいえないですけど、思い立ったら改造してみるのは良いことです。
というわけで引数形式に変更してみます。
と言っても簡単で、冒頭でこうするだけですね。
シェルスクリプトはこういうところが簡単で好きです。
ID=$1 PW=$2
第1引数にID、第2引数にパスワードを受けています。
引数チェックをします。
if [ $# -ne 2 ];then echo usage $0 [ID] [pw] exit 1 fi
引数が足りない場合にはUSAGEを表示するのがルールです。こういうのは癖付けしておくと後で楽ですね。
ついでにコマンドライン実行時に確認するようにしてみました。
echo ready? read HOGE if [ "$HOGE" != "y" ] ;then echo No update... exit 1; fi
ready?に対して y を入力すると続行する感じです。
これは、要らないかもしれないですけどね・・・。
というわけで、このようになりました。
#!/bin/sh ID=$1 PW=$2 if [ $# -ne 2 ];then echo usage $0 [ID] [pw] fi echo ID $ID echo PW $PW echo ready? read HOGE if [ "$HOGE" != "y" ] ;then echo No update... exit 1; fi #変数定義 HTTP="http://" IPV6=${HTTP}${ID}:${PW}@ipv6.mydns.jp/login.html IPV4=${HTTP}${ID}:${PW}@ipv4.mydns.jp/login.html echo get current IP... NEW_IP=`curl ifconfig.co` echo $NEW_IP echo set ipv6... wget -q -O `date +%Y%m%d_%H%M%S`_ipv6.txt $IPV6 if [ $? = 0 ] ; then sleep 3; echo set ipv4... wget -q -O `date +%Y%m%d_%H%M%S`_ipv4.txt $IPV4 if [ $? = 0 ] ; then #更新 echo [`date +%Y%m%d_%H%M%S`] update to $NEW_IP else echo error update ipv4. fi else echo error update ipv6. fi
ディスカッション
コメント一覧
まだ、コメントがありません