特定のファイルから情報を取り込んで一定の情報を吐き出す場合に
変数として$1,$2をとるという形式があると思う
より進化したやり方としてはgetoptを使って引数をより詳細に設定する方法
しかし単純なデータの編集などの場合は
while read line
do
echo $line
done
みたいなwhile readを使って標準出力に表示する方法がいい
shellの想定した使い方として
cat file1 | sh shellex.sh > file2
このようなshellで一般的なパイプとリダイレクトを利用した
データの受け渡しが出来る。
単純なデータの受け渡しだけでなく
cat file1 |sed s/aa/AA/ | awk -F; '{print $3}' | sh shellex.sh | grep -v "^#" > file2
みたいな一般的な編集コマンドの間に挟んで利用することも出来る
作ったときは単体かもしれないけど
将来的にはいろんな形式の間に入れることが出来て非常に便利になる。
2011年5月24日火曜日
2011年5月18日水曜日
plefixからnetmaskに変換するshell
plefixからnetmaskを変換するbashスクリプト
難しいことは考えずにリストを作成して参照する形にした。
netmask0="0.0.0.0"
netmask1="128.0.0.0"
netmask2="192.0.0.0"
netmask3="224.0.0.0"
netmask4="240.0.0.0"
netmask5="248.0.0.0"
netmask6="252.0.0.0"
netmask7="254.0.0.0"
netmask8="255.0.0.0"
netmask9="255.128.0.0"
netmask10="255.192.0.0"
netmask11="255.224.0.0"
netmask12="255.240.0.0"
netmask13="255.248.0.0"
netmask14="255.252.0.0"
netmask15="255.254.0.0"
netmask16="255.255.0.0"
netmask17="255.255.128.0"
netmask18="255.255.192.0"
netmask19="255.255.224.0"
netmask20="255.255.240.0"
netmask21="255.255.248.0"
netmask22="255.255.252.0"
netmask23="255.255.254.0"
netmask24="255.255.255.0"
netmask25="255.255.255.128"
netmask26="255.255.255.192"
netmask27="255.255.255.224"
netmask28="255.255.255.240"
netmask29="255.255.255.248"
netmask30="255.255.255.252"
netmask31="255.255.255.254"
netmask32="255.255.255.255"
prefix=${plefix_num}
netmask=$(eval "echo \${netmask${plefix}}")
ちなみにplefixをIPから分割するには
echo ${ip} | sed s#.*/##
みたいにすると出来る。
難しいことは考えずにリストを作成して参照する形にした。
netmask0="0.0.0.0"
netmask1="128.0.0.0"
netmask2="192.0.0.0"
netmask3="224.0.0.0"
netmask4="240.0.0.0"
netmask5="248.0.0.0"
netmask6="252.0.0.0"
netmask7="254.0.0.0"
netmask8="255.0.0.0"
netmask9="255.128.0.0"
netmask10="255.192.0.0"
netmask11="255.224.0.0"
netmask12="255.240.0.0"
netmask13="255.248.0.0"
netmask14="255.252.0.0"
netmask15="255.254.0.0"
netmask16="255.255.0.0"
netmask17="255.255.128.0"
netmask18="255.255.192.0"
netmask19="255.255.224.0"
netmask20="255.255.240.0"
netmask21="255.255.248.0"
netmask22="255.255.252.0"
netmask23="255.255.254.0"
netmask24="255.255.255.0"
netmask25="255.255.255.128"
netmask26="255.255.255.192"
netmask27="255.255.255.224"
netmask28="255.255.255.240"
netmask29="255.255.255.248"
netmask30="255.255.255.252"
netmask31="255.255.255.254"
netmask32="255.255.255.255"
prefix=${plefix_num}
netmask=$(eval "echo \${netmask${plefix}}")
ちなみにplefixをIPから分割するには
echo ${ip} | sed s#.*/##
みたいにすると出来る。
登録:
投稿 (Atom)