トップページunix
1001コメント289KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2012/06/08(金) 00:35:51.19
シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。

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

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

前スレ
シェルスクリプト総合 その19
http://toro.2ch.net/test/read.cgi/unix/1323515200/
0123名無しさん@お腹いっぱい。2012/06/20(水) 14:40:54.15
BSD dateはいいのか?
0124名無しさん@お腹いっぱい。2012/06/20(水) 14:43:50.35
>>123
なるべく汎用性が高い方法で、ってことじゃないなあ。
0125名無しさん@お腹いっぱい。2012/06/20(水) 14:45:03.99
×じゃないなあ
○じゃないかな
0126名無しさん@お腹いっぱい。2012/06/20(水) 14:56:47.76
>>123
>>99で出てるな。
0127名無しさん@お腹いっぱい。2012/06/20(水) 15:04:20.81
JSTとかPDTとかってどうやって取得すんの?
0128名無しさん@お腹いっぱい。2012/06/20(水) 15:06:30.87
>>122
perlといってもうちの環境じゃコアモジュールすら無いけどな
何をやるにも車輪作り直しだから楽しいといえば楽しい
0129名無しさん@お腹いっぱい。2012/06/20(水) 15:11:35.40
>>128
そういう環境では>>120はどうやるの?
0130名無しさん@お腹いっぱい。2012/06/20(水) 15:22:57.02
>>129
諦めてた
0131名無しさん@お腹いっぱい。2012/06/20(水) 15:24:14.50
コアモジュールなくても、timeとlocaltimeとprintくらいないの?
0132名無しさん@お腹いっぱい。2012/06/20(水) 16:40:08.45
>>131
標準関数はだいたいある
昨日の日付くらいなら自力でなんとかなるよ
0133名無しさん@お腹いっぱい。2012/06/24(日) 21:01:25.05
expectを使用してlsコマンドを発行、
その結果をスクリプト内の変数に入れるにはどうすればいいのん?
コマンド発行まではググってすぐにわかったんだけど結果取得がよくわかんない(´・ω・`)
0134名無しさん@お腹いっぱい。2012/06/24(日) 21:07:37.57
普通に ` ` じゃだめなん?
0135名無しさん@お腹いっぱい。2012/06/24(日) 21:54:23.75
expect内でtelnet接続
その接続先でコマンドを発行して結果を取得したいのです…
0136名無しさん@お腹いっぱい。2012/06/24(日) 22:09:29.98
それは大変高度な要求なので答える事が出来るのは日本に1人しかいない。
0137名無しさん@お腹いっぱい。2012/06/24(日) 22:10:23.28
>>135
そういうことなら ssh 使う方が楽じゃない?
0138名無しさん@お腹いっぱい。2012/06/24(日) 22:12:20.95
expect+telnetなんて使わずに普通にssh使え。
0139名無しさん@お腹いっぱい。2012/06/24(日) 23:24:18.51
>>135
前回の expect から今回の expect までの文字列すべてが $expect_out(buffer) に
格納されるから、それを処理すればよい。
以下は /var/log/wtmp のファイルサイズを取得する例。

send -- "ls -al /var/log | egrep -e \"\[ \]wtmp$\"\r"
set bprompt 0
while { $bprompt < 1 } {
expect {
# わざと "\r\n" で expect 掛けて、1行1行ぶつ切りにしてプロンプト手前の1行だけ回収。
-re "\r\n" { set last_line $expect_out(buffer) }
-re ".*\[\$\] " { set bprompt 1 }
}
}

# 正規表現で ls の5カラム目だけ $fsize に切り出し。
if { [ regexp {^\S+\s+\S+\s+\S+\s+\S+\s+(\S+)\s} $last_line i_all fsize ] } {
send -- "export WTMPSIZE=$fsize\r"
}
0140名無しさん@お腹いっぱい。2012/06/24(日) 23:44:45.76
自分で書いててなんですが、ls /var/log/wtmp でいいですよね。
出力行数をコマンド側で極力減らしておく、ということを言いたかったのですが
例としては不適切でした。
0141ワラ2012/06/25(月) 23:34:27.36
>>133>>135
シェルスクリプトはどちらで動くのですか?
0142名無しさん@お腹いっぱい。2012/06/26(火) 09:23:23.94
回答が全て難しすぎてワロタ
expect -c "
spawn telnet 127.0.0.1
expect \"$ \"
send \"ls\r\"
expect eof
"
こんな風に書いてて
「よーしとりあえずexpectの外でecho $expect_out(buffer)を入れてlsの結果を表示するぞー」
とか思ってたらなんかどこに入れるかわからんかった
というより、expectの使い方がわかってない気がした…
0143名無しさん@お腹いっぱい。2012/06/26(火) 11:39:01.09
回答が難しいってより質問がわけわからんくて。
鍵設定して
OUT=`ssh hoge@127.0.0.1 ls`
とかでいいじゃん。
0144名無しさん@お腹いっぱい。2012/06/26(火) 12:03:19.34
ふむ。
端からexpectありき、で考えること自体が間違っているわな。
0145名無しさん@お腹いっぱい。2012/06/26(火) 15:29:34.23
telnet接続限定なのでどうしてもexpectを使用してlogin passwordを自動化しないといけないんですよね…
0146ワラ2012/06/26(火) 15:57:31.38
>>141はどうなんだよ。

シェルスクリプトは全部こっちで動かすとして、

#! /usr/bin/expect -f
spawn telnet ホスト名
expect "login:\ "
send "ログイン名\r"
expect "assword:"
send "パスワード\r"
expect "^ホゲ$ "
send "ls¥r"
expect "^ホゲ$ "
send "exit\r"

を下請けコマンドにしてやってみれ。(プロンプトは"ホゲ$ "と仮定)
0147名無しさん@お腹いっぱい。2012/06/26(火) 16:08:59.94
質問者は名前書いとくれ。
01481332012/06/26(火) 16:18:50.38
>>146
動かす方は全てクライアント側です
早速そのスクリプトをe.shで保存
expect e.shとして接続を確認
呼び出し側のスクリプトclient.shで
#!/usr/bin/env bash
OUT=`expect e.sh`
echo $OUT
とするとConnection closed by foreign host.oel Chiappa.c. Reserved.というエラーが…
むむむ…
0149名無しさん@お腹いっぱい。2012/06/26(火) 16:21:53.21
ルータか?
ならそれを先に言えよ。
そもそもls使えんのか?
01501332012/06/26(火) 16:25:27.80
Yes
シリアル接続のルータです
lsは仮で使用出来るコマンドを発行してます
でもexpect -f e.sh や expect e.shだとOKなんですが
シェルスクリプト内でやると駄目だよーと怒られるんです(´・ω・`)
0151名無しさん@お腹いっぱい。2012/06/26(火) 16:27:25.92
「駄目だよー」じゃわからん。
0152名無しさん@お腹いっぱい。2012/06/26(火) 16:27:40.89
×シリアル接続のルータ
○シリアル接続が出来るルータ
0153名無しさん@お腹いっぱい。2012/06/26(火) 16:28:08.54
ウソついたり隠し事したりするやつはめんどう見きれん。
01541332012/06/26(火) 16:28:19.13
>>151
エラー内容は>>148です
0155名無しさん@お腹いっぱい。2012/06/26(火) 16:29:27.55
たぶんそれ出来ないよ。
だからperl何かをみんな使う。
0156名無しさん@お腹いっぱい。2012/06/26(火) 16:29:29.22
>>154
それエラーじゃないでしょ。
向こう側が接続を切った、って言ってるだけ。
01571332012/06/26(火) 16:33:03.55
>>155
そうなんだ…
>>156
expect e.shだと出来るんですよね
でもシェルスクリプト内で呼び出すと先ほどのエラーがでちゃう
うーむ…
0158名無しさん@お腹いっぱい。2012/06/26(火) 16:40:34.41
>>157
標準出力が端末以外の状態だとダメなんだろ。

expect e.sh だとOKでも、
expect e.sh | cat ではNGとか。

だったら OUT=`expect e.sh` も NGになる。
01591332012/06/26(火) 16:44:09.27
>>158
いえ、expect e.sh | catと打ち込んでも出来ました
でもシェルスクリプト内で>>148のようにするとエラーが返って来ちゃうんです
0160名無しさん@お腹いっぱい。2012/06/26(火) 16:48:13.20
>>159
シェルスクリプトの「外」で、

OUT=`expect e.sh`
echo "$OUT"

って打ち込むとどうなる?
0161ワラ2012/06/26(火) 16:49:51.33
J. Noel Chiappaさん、久しぶりだなあ。
01621332012/06/26(火) 16:50:03.46
>>160
>>148のエラーが$OUTにはいってました
0163名無しさん@お腹いっぱい。2012/06/26(火) 16:53:23.12
>>162
じゃあ、

expect e.sh > OUT
cat OUT

で妥協。
01641332012/06/26(火) 16:57:30.29
>>163
ばっちり出来ますた!
ちなみに別ファイルを用意せずにシェルスクリプト内でexpect -c ""みたいにする事は出来ないのかな?
出来ないから別ファイル用意してexpectやperlを使用するようにと言われてるような気もするけど…
0165ワラ2012/06/26(火) 17:02:26.40
出来るよ。
たぶんあんたが色々勘違いしてるだけ。
ルータの連続ログイン禁止に抵触してたり。
エラー処理がない>>146もどうかと思うけど。
0166名無しさん@お腹いっぱい。2012/06/26(火) 17:04:50.56
>>165
連続ログイン?
そういったルールによるアクセス制御はありませんよ
ちなみにexpect -cだと具体的に>>146はどう書くんです?
0167名無しさん@お腹いっぱい。2012/06/26(火) 17:09:57.50
全出力を他のファイルに落としてゴニョゴニョするよりperlのNet::Telnetでも使った方がいい気がする。
0168名無しさん@お腹いっぱい。2012/06/26(火) 17:26:29.45
>>166
シングルクオートでくくって、¥等をエスケープするだけ。
0169名無しさん@お腹いっぱい。2012/06/26(火) 18:57:55.22
>>166
expect -c "
spawn telnet ${HOST}
expect \"login: \"
send \"${USER}\r\"
expect \"assword: \"
send \"${PASS}\r\"
expect \"$\"
" > OUT
cat OUT
でもこうやって全出力を他のファイルに落としてゴニョゴニョするより(ry
0170名無しさん@お腹いっぱい。2012/06/26(火) 19:08:18.81
一般論として考えよう。

コマンド > OUT
cat OUT

なら動作するのに、

OUT=`コマンド`
echo "$OUT"

では動作しないのって、どういうケースが考えられる?
0171名無しさん@お腹いっぱい。2012/06/26(火) 19:32:35.02
どっちにしてもtelnetがconnction closedになる事はないです。
0172名無しさん@お腹いっぱい。2012/06/26(火) 19:39:47.98
>>171
そういう話はしてないだろ
0173名無しさん@お腹いっぱい。2012/06/27(水) 20:34:48.42
bashで、32bitや64bit等の固定幅整数の論理演算がやりたい時って、
普通はどうやるものなのでしょうか?
例えば左シフトする演算をやるとすると、固定幅でない場合は面倒です。
計算後に一々固定幅に除算するのは速度的にどうかと思うし、
皆さんがどのような手段をとっているのか、おすすめの方法を教えて下さい。
0174名無しさん@お腹いっぱい。2012/06/27(水) 20:35:48.09
bashでやろうってのがどうかと思う。
0175名無しさん@お腹いっぱい。2012/06/27(水) 20:56:11.44
>>173
bashなら64bit(符号付)で固定幅だよ。
左シフトしてオーバーフローしたビットは自動的にカットされる。

$ echo $((0x7fffffffffffffff))
9223372036854775807
$ echo $((0x7fffffffffffffff<<1))
-2
$ echo $((0x7fffffffffffffff<<2))
-4
0176名無しさん@お腹いっぱい。2012/06/27(水) 21:28:12.13
>>175
1.
bashが64bit幅(符号付)というのは、bashの仕様でしょうか?
それとも、事実上、それが基本になっている事が多いということでしょうか?

2.
32bit幅の固定幅bit演算、符号なしの論理演算をする時は、
やはり %0xFFFFFFFF 等と、演算を行った後に
適宜修正して計算するのが普通なのでしょうか?
0177名無しさん@お腹いっぱい。2012/06/27(水) 23:10:24.88
ループバックってなんですか?
0178名無しさん@お腹いっぱい。2012/06/27(水) 23:11:20.59
くるっと自分のところに戻る
0179名無しさん@お腹いっぱい。2012/06/28(木) 07:54:55.06
で、結局ループバックってなんですか?
0180名無しさん@お腹いっぱい。2012/06/28(木) 10:56:16.20
くるっと自分のところに戻る
0181名無しさん@お腹いっぱい。2012/06/28(木) 10:59:29.13
だから、結局ループバックってなんなんですか?
0182名無しさん@お腹いっぱい。2012/06/28(木) 11:03:12.48
くるっと自分のところに戻る
0183名無しさん@お腹いっぱい。2012/06/28(木) 11:27:39.66
ルーフバッグってなんですか?
0184名無しさん@お腹いっぱい。2012/06/28(木) 11:28:26.83
屋根袋
0185名無しさん@お腹いっぱい。2012/06/28(木) 13:34:47.48
>>177
流れを読んでいないけど、
男なら黙ってmanだろ。
$ man -k loopback
lo(4) - software loopback network interface
0186名無しさん@お腹いっぱい。2012/06/28(木) 13:37:43.27
$ man -k loopback
loopback: nothing appropriate.
$ man loopback
No manual entry for loopback
0187名無しさん@お腹いっぱい。2012/06/28(木) 13:55:49.47
そもそもどのループバックのことなのか。
シェルスクリプトとは別の話じゃないのか。
0188名無しさん@お腹いっぱい。2012/06/28(木) 14:17:25.20
超エスパーすると、エコーバックのことを聞いてるとか
0189名無しさん@お腹いっぱい。2012/06/28(木) 18:04:41.35
俺はレジ袋もらう派だ
0190名無しさん@お腹いっぱい。2012/06/28(木) 18:07:40.50
それはエコバッグ
0191名無しさん@お腹いっぱい。2012/06/29(金) 17:10:34.14
パラメータに空白で区切って複数のオプション入れて、
それをコマンド引数に渡すってことをやってたんだけど
$ options="+profile '*'"
$ convert $options image1.jpg image2.jpg

bash 4.2でパラメータ中に*や'があると展開時にエスケープされるようになった
$ set -x
$ convert $options image1.jpg image2.jpg
+ convert +profile ''\''*'\''' image1.jpg image2.jpg

結局Arrayを使うことにしたんだけど
$ options=(+profile '*')
$ convert "${options[@]}" image1.jpg image2.jpg

これってbashのバグなんだろうか?それともANSIの仕様?
bashに特殊文字のエスケープやめさせる方法無いんだろうか?

こんなふうに複数のパラメーターを一気に渡そうって発想が横着なのかもしれないけど
だったらArray使わない移植性あって手軽な方法って無いのかな?
$ convert $(echo $options)
は思いついたけどなんか嫌だし、副作用もあるので
0192名無しさん@お腹いっぱい。2012/06/30(土) 03:45:58.31
そんな事にはならないけど?

$ ls
1.jpg 2.jpg
$ o="+p *"
$ echo $o
+p 1.jpg 2.jpg
$ echo "$o"
+p *
$ o="+p '*'"
$ echo $o
+p '*'
$ echo "$o"
+p '*'
$ bash --version
GNU bash, バージョン 4.2.10(1)-release (i686-pc-linux-gnu)
...
01931912012/06/30(土) 16:40:38.69
>>192
bash --version
GNU bash, バージョン 4.2.28(1)-release (x86_64-redhat-linux-gnu)

4.2.10では起きてなかったと思う
0194名無しさん@お腹いっぱい。2012/06/30(土) 16:43:18.58
ふつー、ポジションパラメータ
0195名無しさん@お腹いっぱい。2012/06/30(土) 16:54:47.17
4.2.10でも再現した
$ bash --version
GNU bash, バージョン 4.2.10(1)-release (x86_64-redhat-linux-gnu)
$ set -x
$ options="+profile '*'"
$ convert $options image1.jpg image2.jpg
+ convert +profile ''\''*'\''' image1.jpg image2.jpg
0196名無しさん@お腹いっぱい。2012/06/30(土) 17:02:02.66
4.2.29でも同じだった
>>192
echo が引用符が除去するからそれをやってもわからない
set -xで見ないと
0197名無しさん@お腹いっぱい。2012/06/30(土) 17:10:30.74
4.1でも3.2でも同じだから俺がエスケープされる仕様に気付いてなかっただけっぽ
0198名無しさん@お腹いっぱい。2012/06/30(土) 17:11:54.01
>>196
set -xで見て付いてるクォートは実際には除去されるから問題ない
0199名無しさん@お腹いっぱい。2012/06/30(土) 17:49:22.14
>>194
setでポジショナルパラメータに代入しても
結局ポジショナルパラメータの展開時にエスケープされちゃう
$*でも$@でも"$@"でも同じ
逆に*をあらかじめクォートしなければうまくいくようにも思えるが
クォートされていない*をそのままsetでポジショナルパラメータに代入する方法が無い

>>198
set -xでやたら'が増えるのはわかってるけど、そういう問題じゃないから
コマンド引数として「*」記号を渡したい
あらかじめ文字列中に裸の「*」を入れておくとglob展開される
「'*'」や「\*」を入れておくとパラメータ展開時に'や\までエスケープされてしまうって話
>>192の例でoが「'*'」の時
echo $oとecho "$o"、つまりecho '*'とecho "'*'"の結果が同じになるのは変だろ
記号「*」だけを表示して欲しいわけ

そのためにはoを「*」をにしてecho "$o"とやるしか方法がない
そういう仕様だからしかたないと納得した
つまり俺の
> パラメータに空白で区切って複数のオプション入れて、
> それをコマンド引数に渡すってことをやってたんだけど
がそもそも間違ってた。特殊記号が入る時はそういう事やっちゃいけないんだろう
0200名無しさん@お腹いっぱい。2012/07/02(月) 13:20:07.03
>>191 やりたい事がこれで出来るならば、
options=(+profile '*')
convert "${options[@]}" image1.jpg image2.jpg

これでも出来のではないですか?パス名展開させたければ、ダブルクォートを外す。
options='+profile *'
convert "${options}" image1.jpg image2.jpg

>>199 のこの辺がとても気になりますが、長くなるので省略。
> クォートされていない*をそのままsetでポジショナルパラメータに代入する方法が無い
> >>192の例でoが「'*'」の時
> echo $oとecho "$o"、つまりecho '*'とecho "'*'"の結果が同じになるのは変だろ
02012002012/07/02(月) 13:38:21.36
ああ、オプションだから、区切られないといけませんね。
後ほど
02022002012/07/02(月) 13:57:02.19
$ cat convert.sh
#!/bin/sh
for i; do echo "$i"; done

$ sample.sh
#!/bin/sh -x
options='"-a" "*" "-b" "file name"'
eval ./convert.sh "${options}" '"other file"'

eval set -- "+profile '*' 'file name'"
./convert.sh "$@" image1.jpg image2.jpg

これでまだ勘違いしていたら、夜にでも考えます
0203名無しさん@お腹いっぱい。2012/07/02(月) 14:46:36.09
個人的にはbashとkshの両方で動くならArrayでいいかって気になってます
特にデータが外部から来る場合は"${array[@]}"がセキュリティ面を考えると安心だし
02042002012/07/02(月) 19:47:27.73
変数を区切るのでもなければ、eval set は不要で単に set で充分ですね。
変な点はまだ有るかもしれませんが、まあ Array で動いていてそれで良いなら、
不要な様なのでこれ以上訂正しません。

0205名無しさん@お腹いっぱい。2012/07/07(土) 04:32:03.14
>>200
不要です。
以上。
↓はい次の方。
0206名無しさん@お腹いっぱい。2012/07/07(土) 07:45:06.26
↑リフレクト
0207名無しさん@お腹いっぱい。2012/07/07(土) 21:04:25.66
戻り値がゼロのとき真 ってのやめてほしい
0208名無しさん@お腹いっぱい。2012/07/07(土) 21:24:19.25
算術式展開では 真で1

$ echo $((123==123))
1

算術式評価では 真で0

$ ((123==123)); echo $?
0

・・・そういうものです
0209名無しさん@お腹いっぱい。2012/07/08(日) 00:05:05.40
かき回すなよバカ。

echo false; echo $?
意味ねーだろ。
0210名無しさん@お腹いっぱい。2012/07/08(日) 08:43:03.23
>>209 が 「echo false」で例えてるのが的外れ。
>>209>>208 の意味を理解してない。たぶん、算術式評価を知らないと見た。

echo $((123==123)); echo $? じゃなくて、
((123==123)); echo $? を実行してるんだから。
0211名無しさん@お腹いっぱい。2012/07/08(日) 08:58:09.05
それを踏まえたうえで、>>207が「戻り値のゼロ」を問題にしているのに、
標準出力の1/0を持ち出すのは「echo false」と同じくらい意味ねーといっているのだ。
わかるか? バカ。
0212名無しさん@お腹いっぱい。2012/07/08(日) 09:00:39.71
罵倒はいらんよ。
0213名無しさん@お腹いっぱい。2012/07/08(日) 09:04:04.78
>>211
>>208 が指摘してるのは、
戻り値では0が真だが、展開値を出力とする算術式展開では1が真だよという点。
で、その算術式展開と算術式評価もまた違うという点。

やっぱり >>209 は算術式理解してなかったんだね。
0214名無しさん@お腹いっぱい。2012/07/08(日) 09:08:53.37
>>211 は多分↓みたいなコマンド理解できないだろう。

$ ((0)); echo $?
1

↑結果は偽ね。
0215名無しさん@お腹いっぱい。2012/07/08(日) 09:40:18.88
>>213
コマンドの戻り値が0で真が気持ち悪いというのが>>207が言っている事。

それに対して、算術展開とか持ち出した>>208の間抜けさを指摘しているのだ。 バカには難しすぎかい?


>>214
バカすぎる。つーか意味不明。当たり前のように理解不能。
行頭の$は何だよプロンプトか? w
0216名無しさん@お腹いっぱい。2012/07/08(日) 09:45:04.93
>>215
>当たり前のように理解不能。

↑敗北宣言乙w
0217名無しさん@お腹いっぱい。2012/07/08(日) 10:04:40.89
>>215
> >>214
> 行頭の$は何だよプロンプトか? w

その通りだよw
0218名無しさん@お腹いっぱい。2012/07/08(日) 10:12:49.26
なんだbashの記法か。マジで知らんかったわ。w
で、それが「戻り値が0で真は気持ち悪い」となんの関係があるんだ? マヌケ
0219名無しさん@お腹いっぱい。2012/07/08(日) 13:35:39.83
ここはシェルスクリプトのスレなんだから、bashはbashスレでやれ。
0220名無しさん@お腹いっぱい。2012/07/08(日) 15:01:13.59
分かってねえやつは黙ってろマヌケw
0221名無しさん@お腹いっぱい。2012/07/08(日) 19:16:09.74
戻り値がゼロのとき菊地真
0222名無しさん@お腹いっぱい。2012/07/08(日) 19:58:11.85
シェルから使う外部コマンドは正常終了するとき exit(EXIT_SUCCESS) するわけで
/usr/include/stdlib.h:#define EXIT_SUCCESS 0 /* Successful exit status. */
になっているのだからしょうがないでしょうよ。
0223名無しさん@お腹いっぱい。2012/07/08(日) 21:08:41.46
本当、ここはマヌケばかりだw

色々と勉強しなおせ
■ このスレッドは過去ログ倉庫に格納されています