FreeBSDの初期設定スクリプトもどきを作ってる時に、たとえばipfilterとかに使ったり、cronとかに使ったりするテキストデータの作り方をどうしようかと悩んでたところ。
おそらく色々な用途があると思うけど、catとリダイレクトを使ってこんな事ができたのかーと良い事を知った。
言葉じゃ上手く説明できないので、コマンドで書いてみる。
このままじゃ使えないのであくまで例として見てね。
ファイル名はなんでもいいけど、とりあえじ
% vi set.sh 1 #!/bin/sh 2 3 ip=$1 4 5 cat << EOF > ipfilter.txt 6 block in log quick from any to any with ipopts 7 block in log quick proto tcp from any to any with short 8 9 pass in on em0 all head 100 10 block in from 127.0.0.0/8 to any group 100 11 block in from $ip/32 to any group 100 12 pass out on em0 all head 150 13 block out from 127.0.0.0/8 to any group 150 14 block out from any to 127.0.0.0/8 group 150 15 block out from any to $ip/32 group 150 16 17 EOF 18
と、こんな感じにするとすると。
% ./set.sh 192.168.1.100
そして、こんな風に実行するとすると。
中身をみると、ゆで卵じゃなくてファイルができてる。
% cat ipfilter.txt block in log quick from any to any with ipopts block in log quick proto tcp from any to any with short pass in on em0 all head 100 block in from 127.0.0.0/8 to any group 100 block in from 192.168.1.100/32 to any group 100 pass out on em0 all head 150 block out from 127.0.0.0/8 to any group 150 block out from any to 127.0.0.0/8 group 150 block out from any to 192.168.1.100/32 group 150
こうなるのね。
じつに素晴らしい。
たとえば/etc/ipfilterとかにも使えるし、/etc/crontabにもリダイレクトを>の上書きでなくて>>で追記にすればOKだろう。
コマンドじたいは初歩的な事だけど、やはり基本の積み重ねが大事という事を考えるね。
こないだWOWOWで貴志 祐介特集をやってたので悪の教典という映画を見たのだけど、黒い家と同じく小説の方がおもしろいのだろうか。
後半にかけての展開がエルフの遺作ってゲームを思い出した。
オチと日記の内容が全く関係ないけど、まあいいか。