[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 08/05 09:21 / Filesize : 196 KB / Number-of Response : 858
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シェルスクリプト総合 その10



1 名前:名無しさん@お腹いっぱい。 [2008/02/11(月) 19:21:07 ]
シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。
まずは注意点、リンク、地鎮祭など(>>1-6くらい)をご覧ください。


□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashなので特に注意。
・csh/tcshのシェルスクリプトは推奨されません。
(理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルスクリプトのことをシェルってゆーな
・シェルで使えるワイルドカード等は正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)

□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 RubyやPerlの方が適した仕事には素直にそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。

前スレ
シェルスクリプト総合 その9
pc11.2ch.net/test/read.cgi/unix/1187130302/

118 名前:名無しさん@お腹いっぱい。 [2008/03/06(木) 13:08:35 ]
ある
テキストファイルに"aaa"という文字列が入っていたら[処理A]を
テキストファイルに"bbb"という文字列が入っていたら[処理B]を
ってシェルスクリプトだけでできるかな?
bashで。


119 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 13:19:01 ]
bashは知らんがshで

case $(cat x.txt) in
  *aaa*) echo 'do A';;
  *bbb*) echo 'do B';;
esac

120 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 13:23:09 ]
両方入っていたら?

121 名前:名無しさん@お腹いっぱい。 [2008/03/06(木) 13:25:03 ]
>>119
すげえ!頭の構造が違う!
ありがとう。


122 名前:名無しさん@お腹いっぱい。 [2008/03/06(木) 13:25:45 ]
>>120
泣きながら修正する

123 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 14:12:58 ]
>>119
ファイルサイズがでかいとつらそうだな

124 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 14:15:27 ]
grep -s aaa file && echo 処理A
grep -s bbb file && echo 処理B

125 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 15:36:21 ]
>>119
それ bash。
純正 shでは動かん。

126 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 15:41:02 ]
>>125
すげー理屈だな。



127 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 15:43:33 ]
まぁbashで動くならいいんじゃね。

128 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 15:49:49 ]
純正 shって何?

129 名前:名無しさん@お腹いっぱい。 mailto:sag [2008/03/06(木) 16:02:36 ]
Version 7 あたりか

130 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 16:34:24 ]
俺は124みたいな方法が好み
$( )が動くのはkshからか?

131 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 16:49:43 ]
>>124
それだと今のgrepでは行が表示されちゃうよ。
骨董品のような環境しか使ってないことバレますよw

132 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 17:59:52 ]
*BSDユーザはbash依存にはうるさいが、ash依存「$( )とかexport A=aとか」には
無頓着な傾向があるな。

133 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 18:27:06 ]
export A=aはkshでも出来るからどうでも良い

134 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 18:41:48 ]
現実に純正shとやらが載ってる環境なんて今時滅多になかろうし、
テンプレにある議論の基準として参照できそうなのもPOSIXの仕様くらいなので
仕方ない面もあると思う。
>>132は*BSDユーザに何をみてshの仕様を判断することを期待しているの?

135 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 19:02:35 ]
そもそも「純正 sh」って表現が意味わからん。

136 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 19:04:57 ]
そうですか。Solarisは今時滅多にないですか、、



137 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 19:07:57 ]
>>134
「純正 sh」なんて言わないで
「FreeBSD の /bin/sh で試した」とか言えばいいじゃん。

138 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 19:09:10 ]
はいはいashash

139 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 19:10:00 ]
>>137 は勘違いしてるね。
FreeBSD の /bin/sh は 純正 sh じゃない。(ashだから)
だから、FreeBSD の /bin/sh では >>119 が動いてしまう。
純正 shでは動かないけど。

140 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 19:35:26 ]
>>139
純正shって結局何? System 7のshが純正ってことでいい?

>>137
それじゃ一般化した議論ができないよ。
まず、$( )とかexport A=aとかが純正shとやらにはありません、
ということを*BSDユーザに対して説得力ある説明をするにはどうするの?

141 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 19:42:05 ]
>>140
別に一般化しなくていいと思うけどな。
「(OS 名) の /bin/sh では動かないよ」でいいじゃん。

142 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 20:20:17 ]
「Solarisの/bin/shには$( )とかexport A=aとかがありません」これでいい?

143 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 20:33:05 ]
その調子で、Solaris以外も全部列挙していってくれ。

144 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 20:42:22 ]
Solarisはいまどきめったにないです

145 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 21:13:15 ]
多くの商用UNIXは互換のために古いshが残されてる。
Solarisの場合、多くのスクリプトがkshベースになってるけどな。

146 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 21:21:53 ]
商用UNIXがもうそれほど多くないです



147 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 21:25:27 ]
しょうよねぇ

148 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/06(木) 22:24:07 ]
HP-UXは11iでbourneは完全になくなった


149 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 06:51:44 ]
実装とmanだけで、ちゃんとした仕様がないんだから、
純正shなんて言っても始まらない。
今はPOSIXが標準。

>>1
>・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。

なんて馬鹿げてる。

150 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 07:01:33 ]
POSIX sh や ksh を前提にしてもいいかもね

151 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 07:14:25 ]
よくないだろw

152 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 07:22:03 ]
そう?
Bourne Shellを前提にするよりはいろいろと有効だとおもうけど

153 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 08:22:29 ]
正直、AT&Tの純正/bin/shが使える環境の方が特殊。
原理主義者は別スレ立ててそこでやってくれ。
そこで永遠に添削してれば良かろう。

つ 【純正/bin/shが】シェルスクリプト【唯一の正当なsh】

154 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 08:46:54 ]
いやだから、Solarisの/bin/shが現存するんだって。Solarisももう特殊なのか?

155 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 09:13:02 ]
特殊な部類と言われてもそれほど驚かないけど。
/bin/shをposix shに置き換えていないのはまだ生きているものの中ではsolarisぐらい?

156 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 09:48:19 ]
使用シェルを明示すればいいだけのような気がする。
それでも差異を知っておくのは別に悪いことじゃないと思うんだけど、
特定のOSしか相手にしない連中ならそれでもいいか。



157 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 09:58:02 ]
つまり純正shとかいってたのは、Solarisで動かないのは認めねーってのがホンネかw

158 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 10:20:04 ]
Solarisなんて現場ではもうほとんど使われてないだろ。
使われているのは昔のマシンで、移行が面倒だからそのまま動いてるだけのもの。
そういうマシンは保守のみで、新規にスクリプトを書くことはないので、
結局Solaris用のスクリプトなんてもう書くことはない。

159 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 10:25:19 ]
自分の場合、Solarisに限らず古めの商用UNIXをお守りすることがある。
入れ替えろつってもムリな環境ってのはあるから。装置の一部になってるとか。
OSのアップグレードすらムリだったり。

若い連中には/bin/shと書いておきながらbash前提のスクリプト書くやつが
いたりするんだが、犬以外の作業ではまっていたりする。
そんなやつは知識が足りてないから、なかなか解決できないのが笑えるよ。

160 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 10:25:56 ]
>>158
自分の知ってる世界がすべてだと思わない方がいいよ。

161 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 10:50:13 ]
Bourne shを前提にすればSolarisのshすら拡張されている。

162 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 10:51:15 ]
>>160
こういうふうに、反論する(反例を示す)わけでもなく、
一般論だけ言って本人は反論したつもりになってるのって間違ってるよな。

163 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 10:57:52 ]
>>161
じゃあ、Solarisの/bin/shで使えて、Bourne shでは使えない例を1つ以上挙げて。
あらかじめ言っとくけど、あくまでシェルスクリプトとしてね。
インタラクティブモードでの拡張は別。(set -mでjob controlが使えるようになるとか)

164 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 11:16:01 ]
^ がパイプとして動くshはまだどっかにある?

165 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 11:23:50 ]
>>163
関数。

166 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 11:28:01 ]
オリジナルBourne shellって一体どのバージョンのこと指しているの?
POSIXなら仕様のversionでどれかはっきりするけども。
オリジナルBourne shellって言っても、どれか特定すら出来ないでしょ。
後から行われたバグフィックスは含むのか含まないのか。



167 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 11:39:06 ]
>>164
Solarisの/bin/sh は ^ がパイプとして機能する。Bourne sh踏襲のため。

168 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 11:58:56 ]
反例ないようだし、実質 Solaris /bin/sh基準でいいんじゃね?

169 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 12:04:57 ]
可哀想に、耄碌して目も見えなくなったのか……

170 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 12:07:54 ]
基準なんているか?
質問者の環境で動けばいいじゃん。

171 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 12:17:05 ]
そういうことにしてしまうとbashを排除する口実がなくなる。

172 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 12:38:31 ]
実質POSIX sh基準でよさそうだな。SUSv3と一体化したし。

173 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 12:40:50 ]
だから、それじゃSolarisで動かないとあれほど、、

174 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 12:43:10 ]
Solaris爺様には必要なときにSolarisではどうするかと質問してもらうということでいいんじゃない。

175 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 12:44:44 ]
Solarisはkshがあるから、POSIXのコード渡されても問題ないでしょ。

176 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 12:44:57 ]
POSIX信者もbashと同様にウザイことに最近気がついた。



177 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 12:46:14 ]
Bourne shell原理主義者もな。

178 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 12:47:28 ]
学生のときSolarisにお世話になった俺は心情的にはSolaris使える人を維持できるよう
このスレも気を配った方がいいとは思うのだが、昨日からの流れ見てると
到底このスレのSolaris使いを擁護する気にはなれないwww もうPOSIX shスレでいーよ。

179 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 12:53:45 ]
せっかくだからPOSIXと由緒正しいBourne shellの違いを上げてみる?

[[ 新test式 ]]
$(( 算術式 ))
引数がない場合の"$@"問題


180 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 13:00:43 ]
そもそもtestがbuiltinだ、ボケ

181 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 13:01:17 ]
そもそもtestがbuiltinじゃないだ、ボケ

182 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 13:01:43 ]
建設的な話のもっていきかただとは思うが、まず

> 由緒正しいBourne shell

とやらを特定しようぜ。できればSolaris以外のソースで頼むわ。
Solarisのshをもってきてこれが純正だっつーならバージョンも明記でな。

いまのところ、Version 7のshがそれということになりかねない。

183 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 13:04:09 ]
なりつつある、の方が適当だったか。

184 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 13:11:16 ]
人は皆、理想のシェルを追い続ける旅人のようなものさ。

185 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 13:18:46 ]
$( コマンド ) < POSIX

186 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 13:30:45 ]
>>184
理想でいえば、rc はなかなかいいよ(単なるまぜっかえし)



187 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 13:35:48 ]
仮にPOSIXで桶にしてしまうと、
print hoge (printfじゃないよ、読み間違えるなよ)
なんてのも桶になってしまう。
POSIX的にはechoは非推奨で、printに書き換えなきゃならないからな。
で、*BSDユーザーからは printなんてコマンドねーよ、って話になる。

188 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 13:42:10 ]
>>187
はつみみなのでソースよろ。

189 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 13:56:56 ]
echoはプラットフォームごとに違いが大きいからなあ。


190 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 14:10:08 ]
Solarisに至っては内蔵コマンドなのにPATHによって挙動が変化するしね

191 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 16:36:46 ]
POSIXにprintコマンドなどない。

POSIXについてすら>>187のように妄想を語り出す奴がいるようでは
仕様を特定できないBourne shでは到底基準にならないな。

192 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 16:51:06 ]
とりあえず、間を取ってkshぐらいで動けばまぁ文句も出にくいかと。

193 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 17:39:04 ]
>>191
xpg4ってPOSIXじゃないの?

194 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 17:48:55 ]
Unix95とかUnix2003(OSXのあれ)とかと同類。
はっきりいって一番どうでもいい規格w


195 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 21:06:07 ]
仕様を手に入れやすいというメリットはあるね。

196 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 22:50:06 ]
>>193
違うよ。



197 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 23:36:16 ]
>>190
> Solarisに至っては内蔵コマンドなのにPATHによって挙動が変化するしね

マジ? ちょっと信じられないんだけど。

198 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/07(金) 23:39:35 ]
>>179
> せっかくだからPOSIXと由緒正しいBourne shellの違いを上げてみる?

関数が内部コマンドより優先 > POSIX

# [[ test式 ]] ってPOSIXだったかなあ…

199 名前:名無しさん@お腹いっぱい。 [2008/03/08(土) 01:38:57 ]
>>163
${parameter##word}
${parameter#word}
${parameter%%word}
${parameter%word}

200 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 07:55:45 ]
>>199
それはSolarisの/bin/sh でも使えない。よって例にならない。

201 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 08:21:28 ]
POSIXだからといって [[ ]] を使ったりすると
*BSDユーザーが困るだろ。だからPOSIXを尺度にすることは事実上無理がある。

202 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 10:54:49 ]
[[ 〜 ]] はPOSIXじゃないのでその主張には無理がある。

203 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 11:11:35 ]
>>197
$ sh -c 'type echo; echo -n hoge'
echo is a shell builtin
-n hoge

$ PATH="/usr/ucb:$PATH" sh -c 'type echo; echo -n hoge'
echo is a shell builtin
hoge (改行なし)

204 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 12:07:28 ]
じゃあ、kshって結構 POSIXとはかけ離れてるんだ。

205 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 12:29:33 ]
kshをフルに使って書いたものはPOSIX shで動かないという意味では。
kshにあってPOSIXで採用されなかったものとしては、select文もそうだね。

206 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 12:42:50 ]
実際のスクリプトでは全く使われていないのに
参考出品のリファレンスみたいに /usr/xpg4/bin/sh
を置いてるSolarisって一体、、、
しかも、/usr/xpg4/bin/shはPOSIXじゃないし、
/usr/xpg4/bin/shが新標準だとしても
未だに/usr/xpg4/bin/shで /bin/shを置き換える気配もないし、、



207 名前:X/Open mailto:sage [2008/03/08(土) 12:44:44 ]
>>206
> しかも、/usr/xpg4/bin/shはPOSIXじゃないし、

( ゚д゚)ポカーン


208 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 12:54:38 ]
>>207
>>196 ( >>193 )

209 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 12:55:25 ]
>>207
>>194

210 名前:X/Open mailto:sage [2008/03/08(土) 13:04:11 ]
違うのは当たり前だろ
POSIXと違うとか
新標準とか
アホかと思う

211 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 13:06:00 ]
/usr/xpg4/bin/shを置くなら、
なぜ /usr/posix/bin/sh を置かないのか、って話かな?

212 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 13:06:30 ]
その違うのをどうしましょうって話じゃないですか。

213 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 13:22:56 ]
XPG4準拠のが別途用意してあるのはいいことだ。
/bin/shと置き換えるとか、>>206は意味不明すぎ。

214 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 21:16:51 ]
autotoolsの吐くconfigureで使われているか否か、は移植性の判定材料になるだろうか。


215 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 21:37:59 ]
BSDヲタが騒ぐからautoconfは控えることw

216 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 21:43:42 ]
Solarisの/usr/xpg4/bin/shも、HP-UX、AIXの/bin/shも実体はkshだっつうの。
で、kshはPOSIXに一応準拠している。というかPOSIXが後付でkshの仕様をパクっただけ。
ただし、仕様が曖昧なところが多いから、
POSIX志向が強いbashなんかとkshでも、結構挙動が違っているところがある。



217 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/08(土) 21:49:08 ]
実体一緒でもargv[0]が違えば挙動が違うでしょ。

218 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/13(木) 15:52:12 ]
Solarisでは/usr/xpg4/bin/shとkshは別バイナリだぞ。嘘書くな。
ハードリンクもしてないし、当然argv[0]も見てない。cmp比較してから書けよ。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<196KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef