月別アーカイブ: 2011年10月

初めてのシェルスクリプト

 昨夜は電話でだが、生まれて初めて父親に踏み込んだ。
 伝えたのは:

・嫌いだとか避けたいだとかではない

・幼い頃、月に1度のペースで、深夜酔って暴れられたのが今でも思い出される

・声を聞いただけで、または実家の敷地内へ入っただけで、それらの恐怖感が蘇り気持ちが悪くなる

・酔って暴れた父親に、幼い僕がやめてと言ったとき「お前は関係ないから寝てろ」と言われたのが非常にショックだった

・父親の車の音が午後7時過ぎに聞こえた瞬間に、気持ちが塞がれた

・誰が悪い、誰のせいだという話をしているのではない。そういう事実があり、その時僕がどう感じたかを知っておいて欲しい

 横にたまたま嫁がいて、電話の様子を聞いてた。
 存外冷静に伝えられていたようだ。

参考文献:
・『毒になる親』 スーザン・フォワード:著 玉置悟:訳 毎日新聞社
 原題”TOXIC PARENTS -OVERCOMING THEIR HURTFUL LEGACY AND RECLAIMING YOUR LIFE-”

・『アダルト・チルドレンと癒し』 西尾和美 学陽書房

● 始めての

 シェルスクリプトを書いてみた。

#!/bin/sh
for dname in `find . -maxdepth 1 -type d`
do

if [ ”$dname” != ”.” ];
then
echo $dname
cp $dname/* ../all/
fi

done

 正常動作するまでに、2時間。

 息子とお嫁はすっかり昼寝を終えた頃、思ったとおりの動作。

● 日記を

 どうにかしなくてはと思い続ける。
 日記とは、学生時代に書いてたホームページの日記書きかけ含めて勘定すると200個ほどのファイル。

 日付がファイル名になっているので、
 このブログのカレンダーに関連付ければ、西暦を1998年とかにすれば
 ポツポツとカレンダーに下線がつくという寸法だ。

 で、複数のディレクトリにファイルを分けて保存してたので、
 それらを1つのディレクトリにコピーしたい。

 そんなの

● nautiusで

 マウスドラッグでやれば、複数のディレクトリに分散してるファイルといえども
 数分でコピーはできるのだが。

● こちとら

 秋休みで、お嫁も1才の息子も昼寝中なのだ。

 シェルスクリプトでできないかと思案。

 検索する。

● 覚えたこと。

○ for 変数名 in リスト; do; 〜; done

 これで foreach みたいなことができる。
 便利な感じだ。

○ リスト部分

 IMG*.JPGみたいな指定ができる。
 きっと、lsとかの結果も指定できるんだろうと踏んで、検索。

 使いたいのは、ディレクトリだけのリスト出力。
 ls のオプションを探すも徒労。

 find がいいようだ。

○ find -type d -maxdepth 1

 findコマンドは本当に「ファイルを探す」ためのコマンドなんだと知る。
 いままでは「-name 」オプションだけ知ってて、
 findなんだからオプションでわざわざ「-name」とするのが煩雑だなあぐらいにしか思ってなかった。

 「-type d」でディレクトリだけ探せという意味とは。
 find はファイル探しのコマンドなんだと実感、同時に「-name」オプションがある気持ちもようやく腑に落ちた。

○ 逆のアポストロフィーで実行結果を返す

 findでディレクトリだけのリストを表示させるコマンドラインは分かった。
 それを for 〜 in の所に指定する方法が分からずしばし彷徨う。

 これが「`」だった。
 おお。

○ if文

 条件式に「[」と「]」を使う。
 これって「test」コマンドの意味を表すのかな。←ここはまだ不明。

 演算子に「-ne」とかあるようだったけど、単純に「!=」で良いよう。

 [と”$dname”をくっつけたら、それはそれでエラー。
 $dnameが「dirname」を代入されているなら「[dirname」みたく扱われてしまって「[」がトークンとして認識されなくなるようだった。ふむー。

 [と”$dname”の間にスペースを入れてみたら動いた。

○ cp の行のエラー

 ずーっと意味不明だった。
 dirname/* というファイルは存在しません、みたいなことを言う。ん??

 ためしに直接「ls dirname/*」と打つと、ファイルのリストがダラダラ出てくる。
 なぜ?
 と思って、昼寝から覚めた妻子と外出、息子を風呂に入れ、布団で横になってるとひらめく。

 「cp ”$dname/*” ../all/」
 と打ってた「”」がいけないんじゃないか。

 コマンドラインで「”」で囲んだら、
 ワイルドカードとかそういうんじゃなくて、
 純粋にそういう名前のファイルを探しにいけという意味になるんでは?

 ためしにコマンドラインで
 「cp ”dirname/*” ../all/」

 と打つと、果たして同じエラーが。
 そこでシェルスクリプトを

 「cp $dname/* ../all/」

 に変えると無事動作した。
 なるほど。

 シェルスクリプトだ条件分岐だとは言え、
 書かれた1行1行はコマンドラインで入力しているコマンドなのだということか。

 だから”でトークン分けて見てくれなかったりするのか。
 ふむー

沖縄3

 沖縄から帰る日。

 相変わらず朝食会場(バイキング)は寒いぜ。
 見ると今日は窓も曇ってる。

 窓際にエアコンの吹き出し口でもあるんだろう。

 今日こそは朝ご飯を撮影。

 ↓妻子の


 ↑僕の

 僕のはウコンずくしだ。

 ウコンドレッシング、ウコンソーセージ、ウコンソーメン、ひとつぐらいウンコでも気づかないんじゃないか。

 ソーメンのアップ。
 黄色い。

 ふと見ると息子がご飯付けてご飯食べてる。
 どうやるんだ。

 二日酔いを和ませてくれたのはウコンでもウンコでもなく息子だと知る。

 午前に沖縄を後にしましたとさ。

沖縄2

引き続きまだ沖縄にいるのだ。

 という訳で、朝バイキングののち
 宜野湾ビーチだ。

 お嫁も息子も
 某晴女のお陰様をもってグロッキーに。



 うあー、というわけで
 ゼルダっぽいフィールドだったので。

 あの石を回すとパラポポボボヨヨン♪

 のはずの中城。

 お嫁、ライフ減らしかなり疲れる。

 あー、こういうMAP。

● 夜の帳が

 ゆっくり昼寝して、国際通りへ。
 お嫁曰く「ぜったい、音楽とか、好きやでこの子」

 たぶん、そうかも。

 最後はこれの「龍25度」と「珊瑚礁43度」だ。
 国際通りのお店へ。

 やがて老翁が来て
 歌うは「十九の春」。

 10年前にお嫁と最後に来た沖縄で一緒に聞いた歌だ。

 内容は「もしも今更、離縁せよと、いうなら私が今までで、一番きれいなときだった
十九の時に戻しなさいよ、あんた」

 という。

 疲れてたお嫁が
 まさか、この歌の作者のライブにこれるとは思わず拍手してる。

 息子が僕の腕の中で歌手のほうを見ながら聞いて

 この日初めて拍手する。

 この歌は、十九の春という歌は
 今まで何十年歌い継がれ、
 何十万人という人を涙させてきたのだろうと、

 息子の頭をなでると汗をかいてる。

 この島の人々は、盆に
 大きなお墓の前で酒を飲み、歌を歌うのだそうだ。

 思うに泣くに違いない。

 お嫁と会った日から数えて
 いろいろ思うに、歌詞も聞かず最後は泣いていたのかも知れない。

 息子の袖で涙を拭わせてもらった。

 お嫁と会った日から数え
 息子の袖で涙を拭うに
 息子の頭が既に濡れている。

 ここへこんなに汗をかくこともなかろう、
 気づくと息子が僕に寄り添い目を閉じて曲にきき入っている。

— memo —
for文で djpeg, pnmscale, cjpeg を 複数ファイルに

$ for fname in IMG*.JPG; do djpeg $fname | pnmscale 0.3 | cjpeg > ${fname%JPG}_s.jpg; done

これで IMG*.JPG というファイルを、「JPG」部分を「_s.jpg」に換えながら、0.3サイズ(画像サイズ)に縮小して保存してく。

沖縄

 に来ました。


 世界のウチナーンチュ大会。
 やってる。


 ソーキソバ食べて


 こーれーぐすーかけ過ぎて
 一味唐辛子も入れ過ぎてみた。


 宜野湾ビーチだったけか。
 水がキレイだ。

 夕日の中泳いでる人もあり。

−元気ねー
−そうねー、若い人だよー

● など夫婦で話してると

−えー、遊泳中の方へお伝えいたします、遊泳中の人にお伝えー

 と放送がかかり、

−怒られるよー
−さすがに10月ナメんな、と

● と思ってると

−本日の遊泳は、17:30までとなっておりますぅ

 とのこと。
 日が長いぜ、というか、まだ遊泳OKなんだ。

 沖縄ナメんなということか。

 明日は朝から来て息子を泳がせよう。

— memo —
# ちなみにこの後、330号線の鬼渋滞で、那覇市街まで戻るのが2時間ぐらいかかった。。
# ウィークデイは帰宅ラッシュ避けないとエラいことになることを知る

— memo —
jpeg コマンドライン縮小、ubuntu 10.4?パッケージ名
djpeg, cjpeg – libjpeg-progs
pnmscale – netpbm

$ djpeg fname.jpg | pnmscale ratio | cjpeg > fname2.jpg

毒になる親

 という本を読んでいる。
 なるほど。

● 対決?

 そんなアホな。
 やるけどね。

● 来週の

 土日は
 奈良旅行ですよ。

 お嫁が

● 息子を連れて

 再三再四

 実家へ帰らせて頂きますといえば

● こたえは

 とうぜん

 Yesだ。

● 今月、

 僕は出世するために

● うそ

 僕は再出発するために

● 親父に

 差し違えるですよ。
 毒になる親とは対決せねばなるまい。

 それは母親もそう。

 さよなら、山梨。

 アメブロが楽しくなったとか、そういうのは嘘ではないか。