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


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

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



1 名前:名無しさん@お腹いっぱい。 [2007/02/15(木) 14:28:44 ]
シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。
まずは注意点、リンク、地鎮祭など(>>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 でトレースしましょう。

前スレ
シェルスクリプト総合 その7
pc10.2ch.net/test/read.cgi/unix/1157601611/


284 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 20:57:48 ]
シェルレベルで '...' と ¥' からなる並びに見えるようにする。

'{printf "'
¥'
'%s'
¥'
'¥n", $2}'

見やすいように改行入れてみたが実際にはくっつけて記述。


285 名前:名無しさん@お腹いっぱい。 [2007/03/13(火) 21:15:45 ]
>>284
できました!
ありがとう。
なんでできるのか、もう少し詳しく
教えていただけないでしょうか?

286 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 21:48:08 ]
awk に渡したい文字列を分解するだけだよ。
シェルの解釈する文字をエスケープしながらね。
だから、
'{printf "'"'%s'"'\n", $1}'
などでもいい。

287 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 21:49:44 ]
$1じゃなくて$2だったか

288 名前:名無しさん@お腹いっぱい。 [2007/03/13(火) 22:15:15 ]
wgetの実行結果をファイルに書き込みしたいんですけど
wget アドレス >>ファイル名
で実行して失敗しました。
どうしたらいいかわかりますか?

289 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 22:19:00 ]
わかりますよ。

290 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 22:25:01 ]
wget --help


291 名前:名無しさん@お腹いっぱい。 [2007/03/14(水) 17:16:17 ]
テキストファイルのある行が2chのdat形式かどうかを
正しく判別するにはどうすればいいでしょうか?

grep -E ".*<>.*<>[0-9]+/[0-9]+/[0-9].* [0-9:.]+ ID:[a-zA-Z0-9+-/]+<>.*<>.*"

こんな感じでひっかけようと思ったのですが、
何かの間違いでメール欄やレス欄に <> が
まぎれこんでしまってる場合でもマッチしてしまいます。
やりたいことは、このようなゴミのまじった行を削除することなのですが
どうするのがよいでしょうか?

292 名前:名無しさん@お腹いっぱい。 [2007/03/14(水) 18:47:38 ]
あ、しまった。



293 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/14(水) 21:33:18 ]
> ゴミのまじった行を削除する

全部捨てたらいいんじゃないか。

294 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/14(水) 22:54:48 ]
無理にシェルで書かんでもいいんでは。

295 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/14(水) 23:24:19 ]
>>288

-O

296 名前:名無しさん@お腹いっぱい。 [2007/03/15(木) 03:28:47 ]
>>270
宿題にするな。テストにしとけ。

297 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 09:45:11 ]
ペーパーテストで一発完動のスクリプトかける奴なら即戦力だな。

298 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 23:41:20 ]
ShellScriptの中でscpとsshを使用しようと思っているのですが
普通に構文を書くとパスワード入力等を求められると思うのですが
手動入力でなく、完全自動化にできないでしょうか?
Shellは「sh」です。
OSはRedhatです

299 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 23:42:09 ]
>>298
ssh-agent

300 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 23:53:17 ]
ssh-agent を使用するしか方法はないですか?
他のプログラムとかの絡みで使用できるか・・・・

301 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 00:12:20 ]
リモートの.ssh/authorized_keyにローカルの公開鍵を書いとく

302 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 00:13:16 ]
>>298
板違い。
【sed】シェルスクリプト総合@LINUX Part2【awk】
pc11.2ch.net/test/read.cgi/linux/1154578200/

むしろこっちか。
くだらねえ質問はここに書き込め! Part 142
pc11.2ch.net/test/read.cgi/linux/1173460712/



303 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 07:56:47 ]
>>300
ssh-agentを知ってるなら質問するなよ!

304 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 08:32:48 ]
自分の鍵を暗号化しないでおくというのはどうだろう

305 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 08:33:30 ]
パスフレーズを空にする。
ただし、秘密鍵を盗まれないように。


306 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 10:28:23 ]
ssh-keychain は?

307 名前:306 mailto:sage [2007/03/16(金) 10:30:13 ]
gentoo が作ってるやつな
www.gentoo.org/proj/en/keychain/

308 名前:名無しさん@お腹いっぱい。 [2007/03/16(金) 22:01:18 ]
>>298
expect

309 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 22:13:13 ]
困ったときは〜expect

310 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 18:56:13 ]
expectって標準ではいってたっけ?

311 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 22:20:49 ]
なんの標準だかわからんけど
入ってないなら入れればいいじゃん。

312 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 23:45:58 ]
>>310
お馬鹿さん?



313 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/20(火) 00:15:56 ]
仕事の場合、そうホイホイと入れるわけにはいかないんだな

314 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/20(火) 00:34:23 ]
じゃあしかたないな

315 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/20(火) 00:46:09 ]
必要ないものはホイホイ入れられないだろうが
必要あるなら入れなきゃいかんだろ。

316 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 00:06:29 ]
あたらしい言語処理系が入るというと嫌がられそうだから、
perlの小さなライブラリを追加といってExpect.pmでよくない?
かなりプログラム臭くなるのでexpectに比べてはいけないが、次善の策ではあるはず。


317 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 01:28:07 ]
なんでexpect入れる話になってんだ

318 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 01:51:29 ]
今回は>>298からの流れ

319 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 02:25:07 ]
telnetならexpect使うのがいいだろうけど、sshとscpならパスなしのkeyを使うのが無難だと思うけどな。
パスなしでログインできるのが怖いなら、authorized_keysにcommandを書いて、できることを限定しておくといいよ。
スレ違いだったらすまん。

320 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/28(水) 01:47:01 ]
sedで、最後の行から逆順に文字列検索していって、1件目を出力して終わらせることできるかな?


321 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/28(水) 02:04:06 ]
cat hoge.txt | grep ほげ | tail -1

322 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/28(水) 02:30:58 ]
>>320
awkでやれ
awk '{line[NR]=$0}END{for(i=NR;i>0;i--){if(line[i]=="検索パターン") print line[i];}}' input.txt




323 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/28(水) 02:50:52 ]
tac filename | sed -n '/hoge/{p;q;}'


324 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/29(木) 16:52:36 ]
二つのテキストファイルA.txtとB.txtがあります。
行数は同じでそれぞれの行が関係のある物になっています。
現在、その二つの行をそれぞれスペースで区切って接続を行いたく考えています。

A.txt
山田
山下

B.txt
太郎
二郎

AB.txt
山田 太郎
山下 二郎

A.txtとB.txtからAB.txtを作成する妙案などございましたらご教示いただけませんでしょうか?
よろしくお願い致します。



325 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/29(木) 16:56:53 ]
>>324
paste A.txt B.txt > AB.txt

326 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/29(木) 17:09:44 ]
>>325
PASTE(1)
名前
paste - ファイルを行単位でマージする

大変失礼いたしました…orz
シェルスクリプトとかそう言うレベルで無かったことをお許し下さい…。

327 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/30(金) 09:37:33 ]
b.txt の内容で
幸子の場合、a.txtが山田となっていたら
里中に変更する。という条件付きくらいにしとけば
スクリプトでしなきゃいかんけどな。

328 名前:名無しさん@お腹いっぱい。 [2007/03/30(金) 15:20:07 ]
~/.forwardに記述して、メールを標準入力から読み込んで
そのenvelope Fromを、実データのFromに置換して/usr/bin/vacation
に渡すスクリプトを書きたいのですが・・・

sed -n 's/^From: [^<]*<\([^>]*\).*/\1/p'の内容を覚えさせておいて、
もう一度先頭から読み込んで置換すればよいと思いますが、
その方法がわからないのです。
微妙な内容なのでググるためのキーワードもいまいちで、ヒットしません。

別にsedでなくてpealやawkでもよいのですが、何かいい方法はありますでしょうか?

329 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/30(金) 15:26:46 ]
>>328
そのまま
・覚えさせる->ファイルに書く
・もう一度先頭から読み込んで置換する->そうする
でいいんじゃないの?


330 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/30(金) 16:01:32 ]
URLが一行ずつずらーと並んでいるのですが
頭とケツにそれぞれ「”」を付けたいです。
何か良い方法は有りませんでしょうか?

331 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/30(金) 16:08:36 ]
sed 's/^/”/' | sed 's/$/”/'

332 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/30(金) 16:17:30 ]
>>331
パイプが無駄。一発でできる。

sed 's/\(.*\)/"\1"/'



333 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/30(金) 16:24:13 ]
pealのようなもの

334 名前:328 [2007/03/30(金) 16:31:53 ]
>>329

難しく考えずに、そうすることにします。

335 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/30(金) 16:44:44 ]
>>331-332
ありがとうございます。
頑張ってsed覚えます。

336 名前:328 [2007/03/30(金) 17:10:27 ]
>>334

と思ったら、メール出力から起動されるプログラムは
きわめて弱い実行権限(nobody)しかないので、/tmpにさえ
ファイルを作れません。(人間がテストしたときは巧くいきましたが・・)
権限を強めればセキュリティーリスクが増大するし、
やはり、スクリプトの中で記録と標準入力の再読み込みが必要な模様です。
まあ記録は置換文字列に変数を使えることが判ったので何とかなりそうですが、
「初めからもう一度実行」が途方に暮れてしまいますね。

何かよい方法ありますでしょうか?

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/30(金) 17:14:32 ]
・nobody でも /tmp に書ける。
・そもそも sendmail でも postfix でも .forward のファイル所有者と
同じ権限でプログラムが起動する。nobody にはならない。


338 名前:328 [2007/03/30(金) 18:36:24 ]
>>337

なるほど

では、ほかの原因を考察して見ます。

ありがとうございます。

339 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/30(金) 22:30:53 ]
>>335
sed 's/.*/"&"/'
でもいいな。

340 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/30(金) 23:05:57 ]
>>335
正規表現は使わない方が速いかな。
awkで、
awk '{print "\""$0"\""}'

341 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/03(火) 01:43:34 ]
awkのsystem関数に与えるコマンド文字列の中で「"」や「'」って使える?
「\」を前に置いても駄目でした…



342 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/03(火) 02:26:06 ]
>>341
system が起動しているシェルに食われたんじゃね?




343 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/04(水) 00:17:45 ]
>>342
例えばこんな感じ。実際はこんなシンプルじゃないけど。
awk '{system("grep \"^$\" $1")}' input.file
systemが食われたのか、systemの引数の中では引用符が使えないのか、切り分けができません。



344 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/04(水) 00:26:48 ]
>>343の例だと$1に何も入らないから、とか?

345 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/04(水) 01:00:44 ]
>>344
あそっか、$1は""の外でした。。

awk '{system("grep \"^$\" "$1)}' input.file

本物は業務で使う予定だからコピペできないんだよね。



346 名前:名無しさん@お腹いっぱい。 [2007/04/07(土) 02:11:04 ]
find /日本/関東/女/ mtime +7300でリダイレクトしたら彼女が出来た

347 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/08(日) 22:55:59 ]
>>345
ちゃんと伝わっていなかったようで。
awkの中にシェルの変数の$1入れてもawkがもっていっちゃうからダメなんだって。

348 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/09(月) 22:22:34 ]
>>347

そうか?普通に↓とか使えてるぞ?

awk '{sum[substr($0,a,b)]+=substr($0,c,d);}END{for(n in sum)print n,sum[n];}' input.txt



349 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/10(火) 20:40:57 ]
なんかかみ合わないんだけど、
>>343>>345の例だと、$1をシェルがもっていっちゃって動かないだろうから、
本来やりたいことである
>awkのsystem関数に与えるコマンド文字列の中で「"」や「'」って使える?
の問題とは違ったところでハマっているでしょ、ってことを書いただけなんだけど。
($1にはinput.txtを入れたいのだろうと推測)

それに対して、$数字は awkで使用できるよ、と書かれても困っちゃうんだが。

350 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/11(水) 06:22:32 ]
>>349
言いたいだろうことは理解するが、347がそれが伝わる書き方とは思えなかったぞ。
例えば、何を誰がもっていっちゃうと書いたか、347と349を比較してみ。

351 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/13(金) 00:00:33 ]
ふいんき(なぜか略)を悪くしたようで正直スマンカッタ

352 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/13(金) 01:37:02 ]
awkは読み込んだレコード全体を$0で参照できて、
フィールドセパレータ(デフォルト空白文字)で区切られたn番目のフィールドを
$nで参照できるんだよな。
awk '{system("grep \"^$\" "$1)}' input.file
で$1はinput.fileから読み込んだカレントレコードの1番目のフィールドを
参照すると。
$数字がawkで使えるのは良いとして結局"や'は
system関数の引数の中で使えるのかどうか?





353 名前:名無しさん@お腹いっぱい。 [2007/04/13(金) 16:02:04 ]
DebianとFreeBSDを使っていて、共通の.bashrcを参照しているのですが
Debianを使っているときにはUTF-8を、
FreeBSDを使っているときにはEUC-JPを
環境変数LANGに設定するようにしたいのですが
どのようにコードをかけばよいのでしょうか?

354 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/13(金) 16:07:45 ]
>>353
uname とか hostname あたり見るとか。

355 名前:353 [2007/04/13(金) 16:42:04 ]
>>354
unameとif文を使えばできると思うんですけど
それでsourceコマンドを実行したときに
ちゃんとわりあたるかどうか・・・

356 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/13(金) 16:54:07 ]
>>355
おいおい、sourceなんて使わないよ。
あと、ifじゃなくてcaseを使うのが定石。

case `uname -s` in
Linux) export LANG=ja_JP.UTF-8;;
FreeBSD) export LANG=ja_JP.eucJP;;
esac

357 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/13(金) 16:55:19 ]
別に if 使ってもいいと思うけど、
なんで source が出てくるのかよくわからん。

358 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/15(日) 15:34:49 ]
>>356
Cとかだとswtichは敬遠される傾向にあるけどな。


359 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/15(日) 17:19:24 ]
お前の周りだけだろ。

360 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/15(日) 17:33:16 ]
ifを使うとすると、

if [ `uname -s` = Linux ]; then
export LANG=ja_JP.UTF-8
elif [ `uname -s` = FreeBSD ]; then
export LANG=ja_JP.eucJP
fi

となって、unameの実行が2回になって無駄になる。
かと言ってunameを1回にしようとすると、

tmp=`uname -s`
if [ $tmp = Linux ]; then
export LANG=ja_JP.UTF-8
elif [ $tmp = FreeBSD ]; then
export LANG=ja_JP.eucJP
fi

となって、シェル変数1つが余分に要るので美しくない。

よって、caseを使うのがモストエレガント。

361 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/15(日) 17:37:03 ]
>>360
お前の美学はよくわかった。

362 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/15(日) 17:41:22 ]
で、source はなんで出てきたんだ?



363 名前:名無しさん@お腹いっぱい。 [2007/04/16(月) 19:45:58 ]
そうっすねぇ…。

364 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/16(月) 19:58:24 ]
審議せずに却下

365 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/16(月) 20:37:02 ]
sh にそんなコマンドがないからか?

366 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/16(月) 22:11:51 ]
.があるじゃん。

367 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/16(月) 22:42:57 ]
. はあるけど source はないってオチなのかなと。

368 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/16(月) 23:46:40 ]
source がない sh ってたとえばどれ?

369 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/16(月) 23:52:07 ]
  J

370 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/17(火) 00:16:38 ]
>>368
sh

371 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/17(火) 00:41:10 ]
>>370
どの OS の?

372 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/17(火) 00:47:25 ]
>>371
普通のbshなら.しか使えない。
HP-UXやAIXのshは中身がkshなんで。




373 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/21(土) 02:11:17 ]
zsh 4.3.4登場 - マルチバイト文字の対応を強化
journal.mycom.co.jp/news/2007/04/20/023/index.html

374 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/24(火) 14:20:37 ]
/bin/zsh

375 名前:名無しさん@お腹いっぱい。 [2007/04/25(水) 21:35:53 ]
シェルいい本知りません?初心者向けで

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/25(水) 21:45:15 ]
UNIXプログラミング環境

377 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/25(水) 21:50:11 ]
マジレスをおねがいします

378 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/25(水) 21:52:27 ]
どのへんが冗談だと?

379 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/25(水) 21:55:09 ]
初心者向きじゃないし、内容が古い

380 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/25(水) 22:01:27 ]
対案を出してから批判しろ

381 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/25(水) 22:06:43 ]
「試験に出るシェルスクリプト」

382 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/26(木) 00:34:12 ]
>>381
その筋質問箱は付いてますか?




383 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/26(木) 04:36:49 ]
Z80は最強だから大丈夫

384 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/26(木) 10:22:57 ]
じゃあ「できるシゥルスクリプト」






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

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

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