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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2007/08/15(水) 07:25:02
シェルスクリプトの総合スレです。
スクリプトのお勉強・自慢・腕試しなどにどうぞ。
まずは注意点、リンク、地鎮祭など(>>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 でトレースしましょう。

前スレ
シェルスクリプト総合 その8
http://pc11.2ch.net/test/read.cgi/unix/1171517324/
0654名無しさん@お腹いっぱい。2007/12/22(土) 13:12:04
>>649
つ read hoge; read fuga
0655shell2007/12/22(土) 22:55:46
今スレ開きました。
試してみます。

ありがとうございます。

「dateは本日の日付を求める…」違うですか...
調べます。
0656名無しさん@お腹いっぱい。2007/12/22(土) 23:09:02
「開きました」キター
何でもウィンドウの隠喩w
0657名無しさん@お腹いっぱい。2007/12/22(土) 23:15:08
>>656
DOS時代(ニフ)の頃からある表現なので、
ファイルオープンからきた「開く」だと思ってたけど?違うの?
0658名無しさん@お腹いっぱい。2007/12/23(日) 02:42:27
>>657
いちいち相手しないほうがいいっすよ。
貶すことしかできないやつってどこにでもいますから。
まあこういうやつに限って現実では貶されまくってるわけですけどね。
0659名無しさん@お腹いっぱい。2007/12/23(日) 18:22:15
/home/hoge/fuga/
/home/hoge/fuga/.data
が本来セットであるはずなんですが、
設定ミスで、一部ユーザには
/home/hoge/fuga/
はあっても
/home/hoge/fuga/.data
がありません。

.dataが存在しないフォルダを簡単に調べる方法はないでしょうか。
0660名無しさん@お腹いっぱい。2007/12/23(日) 19:03:27
>>659
for dir in /home/*/fuga
do
[ -f $dir/.data ] || echo $dir
done
0661名無しさん@お腹いっぱい。2007/12/24(月) 08:08:48
文字列に対して、$oldから$newの置換をしたい場合、
echo $line|sed -e s/$old/$new/ だと、
$oldや$newが'/'を含んだ時にエラーになってしまうから、
bashの${line/$old/$new}を使ってしまうのだけど、
他にポータブルないい方法ないでしょうか。
0662名無しさん@お腹いっぱい。2007/12/24(月) 08:33:45
変数がどの文字を含むか予め予期できないとなると、
「,」に逃げるとかはできないしな
0663名無しさん@お腹いっぱい。2007/12/24(月) 10:22:22
コマンドインジェクション可能だから未検証の文字列をコマンドとしてsedに与えてはいけない。
0664名無しさん@お腹いっぱい。2007/12/24(月) 12:30:10
うーん、そうなのですか。
line, old, newがそれぞれ実在のパス(フルパス、相対パス、パスの一部のいずれか)
だと保証できる場合はどうでしょうか。
そもそもsedだと置換え前の文字を正規表現と扱ってしまうから、
期待しないマッチングが発生する可能性もあるけれども。。。
適当なスクリプトに、3つの引数を与えて
その中で処理させたほうがいいのかなぁ。
0665名無しさん@お腹いっぱい。2007/12/24(月) 14:16:55
実在のパスでも、Ctrl-A (0x00) 以外のすべての文字が
パスとして使用可能だからなぁ、、
0666名無しさん@お腹いっぱい。2007/12/24(月) 14:50:27
>665
これ本当ですか?
Ctrl-Aと/以外はファイルやディレクトリ名に使えるってこと?
横から質問で申し訳ない
0667名無しさん@お腹いっぱい。2007/12/24(月) 14:52:42
CTRL-Aは0x01なので嘘です。
0668名無しさん@お腹いっぱい。2007/12/24(月) 14:59:37
CTRL+SPC
0669名無しさん@お腹いっぱい。2007/12/24(月) 15:20:48
Ctrl+@だな。それ以外は本当。
0670名無しさん@お腹いっぱい。2007/12/25(火) 17:49:34
ファイル名にCtrl+Gを含めたら、lsの度に激しくうるさい件について
0671名無しさん@お腹いっぱい。2007/12/25(火) 18:00:35
?に置き換わってうるさくない件について
0672名無しさん@お腹いっぱい。2007/12/26(水) 00:06:34
普通--show-control-charsって常に有効にするだろ
0673名無しさん@お腹いっぱい。2007/12/26(水) 00:32:28
そんなls手が腐るから普通触らない。
0674名無しさん@お腹いっぱい。2007/12/26(水) 03:49:58
半導体業界はcshスクリプトとかtclスクリプトばっか。
ときどき転職したくなる。
0675名無しさん@お腹いっぱい。2007/12/26(水) 10:48:21
CADとかもtcl使っているの多いね。
プラグインとかだけでなく、サービス起動スクリプトまでtcl使っているのがあるし。
0676名無しさん@お腹いっぱい。2007/12/26(水) 11:38:44
TCLは、もともと集積回路設計ツール内蔵スクリプト言語の
ベースとなる拡張可能なスクリプト言語として開発されたからね。
だから半導体の世界では多い。
独自言語使わないで済むのはTCLのおかげ。

Tkとくっついてから他の世界にも普及した。
0677名無しさん@お腹いっぱい。2007/12/27(木) 11:54:46
すみません、
#!/usr/bin/ksh
PALALLEL(){
mp=$!; sp=$$
echo "ぱられる ${mp} ${sp}"
}

PALALLEL &
PALALLEL &

とやったとき最初のmpが取れないんですがどうするべき?

ご教示おねがいします
0678名無しさん@お腹いっぱい。2007/12/27(木) 11:58:48
>>677
当たり前だろ。
最初のPALALLEL()にとっては、$!は存在しないから。
0679名無しさん@お腹いっぱい。2007/12/27(木) 12:07:29
あ。、そうか(終了直後か
・・有難うございました(汗
0680名無しさん@お腹いっぱい。2007/12/29(土) 19:59:29
ある環境変数が定義されているか否かを判定したいんですがどのように判定すればいいんでしょうか?
zshだとif [[ -z $EMACS ]]のようなやりかただと警告がでて嫌なのです
0681名無しさん@お腹いっぱい。2007/12/29(土) 20:37:24
[ "${var+defined}" = "defined" ] && echo defined
0682名無しさん@お腹いっぱい。2007/12/30(日) 02:56:40
あるファイルをgrepした結果を配列としてforeachに引き渡したいのですが、うまくいきません。

grepする内容
-------------------------------
ex xxx
aaa
ex yyy
bbb
ex zzz
-------------------------------
ここからexで始まる行のみをgrepで抽出する(xxx,yyy,zzzは同じディレクトリのメンバ名)

-------------------------------
ex xxx
ex yyy
ex zzz
-------------------------------

これをawkでメンバ名だけ抽出しfileに書き込む
awk '{print $2}' >file

各メンバの行数を表示
foreach i (file)
wc -l $i
end

とやるとfileの行数(この場合3)と出てしまいます。
本当はメンバxxx,yyy,zzzの行数を表示したいのですが、どのようにすればよろしいでしょうか?
fileにはメンバ名が出力されています。よろしくご教授ください。
tcshを使用しています。
0683名無しさん@お腹いっぱい。2007/12/30(日) 04:59:50
`cat file`

既にcshで書かれたプログラムをメンテする必要があるとか、
cshが強制されてるでもなければ、
bshにしときなさい。
0684名無しさん@お腹いっぱい。2007/12/30(日) 10:27:30
>>682
>>1
> ・csh/tcshのシェルスクリプトは推奨されません。
> (理由は「csh-whynot」でググれ)
0685名無しさん@お腹いっぱい。2007/12/30(日) 10:37:16
682を見るにスクリプトを書くよりは対話的に使ってる上での質問じゃないかと
思うが。馬鹿の一つ憶えも程々にしてはどうか。
0686名無しさん@お腹いっぱい。2007/12/30(日) 10:40:38
ならスレ違いだな。消えろ。
0687名無しさん@お腹いっぱい。2007/12/30(日) 10:43:40
tcshで対話的といえば、foreachとかの対話的使いかたが分からん。
やむなく仕事でtcsh使ってるが、
ループ処理の時だけbash起動してる俺。
0688名無しさん@お腹いっぱい。2007/12/30(日) 11:21:51
>>682
$ sh -c 'for i in `cat file`; do wc -l $i; done'
0689名無しさん@お腹いっぱい。2007/12/30(日) 11:39:34
>>681
ありがとうございます
ぱっと見、なにが行われてるかよくわかりませんでしたが
一応bashのmanに載ってる書式なんですね
0690名無しさん@お腹いっぱい。2007/12/30(日) 12:12:19
>>689
[[ -z "$EMACS" ]] でよかろう。
0691名無しさん@お腹いっぱい。2007/12/30(日) 18:26:58
>>689
bash依存じゃない。POSIX準拠だ。
06926822007/12/30(日) 22:03:40
682です。
皆様ありがとうございました。
仕事の環境がtcshを使うので>>1は読んでいましたが質問させていただきました。
また、対話形式でもなく(対話でもいいのですが)、スクリプトで実行したかったんです。
初心者の為、頂いた回答でも分らない部分がありますが、
年明け会社で試してみます。
ありがとうございました。
0693名無しさん@お腹いっぱい。2007/12/30(日) 23:18:24
>>687
簡単な使い方の例を挙げると、

% foreach i ( * )
と入力すると、ループ中を示すプロンプトが出てくるので、
foreach? (ここで変数$iを使った文)
foreach? :
foreach? end

みたいに実施する。

例えば拡張子が.logなファイルがある場所で、
% foreach i ( *.log )
foreach? echo "ファイル名 $i 、行数=`wc -l $i`"
foreach? echo "--- 先頭10行 ---"
foreach? head $i
foreach? echo "--- 末尾10行 ---"
foreach? tail $i
foreach? end

こんなことするときに便利なりよ。
0694名無しさん@お腹いっぱい。2007/12/31(月) 00:21:27
>>693
bashみたいに foreach i ( * ) ; do echo $i; end # do は要らないんだろうけど
みたいには使えないの?
強制的に対話モードになってしまうのが嫌なの。
0695名無しさん@お腹いっぱい。2007/12/31(月) 16:44:41
>>690
それだと、$EMACS が空文字列の場合にも
未定義と判断されてしまう。

>>681 は、空文字列の場合でも、定義済みかどうかをちゃんと判断できる。
0696名無しさん@お腹いっぱい。2008/01/04(金) 00:49:17
sedで "s/aaa/$bbb/" とした場合、$bbbの中に & があると
& が一致した箇所に置換されます
これを変数の中で bbb=\& とエスケープしないでそのまま置換させたいのですが
いい方法はないでしょうか?
またはsedじゃなくても正規表現を無視して置換するコマンドってあります?
0697名無しさん@お腹いっぱい。2008/01/04(金) 18:00:48
シェルを使ってまだ1ヶ月ですが、宜しくお願いします。

やりたいことは1.5GBもあるファイルをgzipを使って圧縮したいのですが、
レンタルサーバーのため負荷が高いせいか途中でkillされてしまい、
圧縮が最後まで出来ません。何か解決策をご教授いただけないのでしょうか?
宜しくお願いします。
gzip fileName
0698名無しさん@お腹いっぱい。2008/01/04(金) 18:10:12
>>697
分割して圧縮?
0699名無しさん@お腹いっぱい。2008/01/04(金) 18:55:23
>>697
レンタル鯖のルールがよくわからんが、ファイルの大小に関係なくファイル圧縮の
CPU使用率なんてタカが知れているから、おそらくCPU時間を測っていて、タイムアウト的に
討ち取られていると思う(CPU負荷は小さいがCPU時間は長くなる)

というわけで>>698の言う通り、splitして分割圧縮するしかないな。
0700名無しさん@お腹いっぱい。2008/01/04(金) 19:09:51
対話的なシェルの使い方はスレ違い。レン鯖板にでも行ってしまえ。
0701名無しさん@お腹いっぱい。2008/01/04(金) 19:37:54
シェルにはAシェル系、Bシェル系、Cシェル系、と種類があるようですが、
僕のPCのシェルはXtermというものみたいです。
これは、シェル系に当てはめると何シェル系なんでしょうか?
0702名無しさん@お腹いっぱい。2008/01/04(金) 19:39:36
釣りは他所でやれ、な?
0703江戸っ子2008/01/04(金) 21:34:59
んなこと知ぇるけぇー!
0704名無しさん@お腹いっぱい。2008/01/04(金) 23:11:46
>>701
マジレスするとxtermはshellじゃない。
0705名無しさん@お腹いっぱい。2008/01/05(土) 00:18:57
シェルにはAシェル系、Bシェル系、Cシェル系、と種類があるようですが、
僕のPCのシェルはTeraTermというものみたいです。
これは、シェル系に当てはめると何シェル系なんでしょうか?
0706次の患者さんどぞー2008/01/05(土) 00:30:07
>>701
Xシェル

>>705
Tシェル

わからない場合はグーグルで検索して調べること
0707名無しさん@お腹いっぱい。2008/01/05(土) 01:31:18
マジレスするとashもbsh系
0708名無しさん@お腹いっぱい。2008/01/05(土) 08:59:59
>>697
ddで先頭から順に適当な長さずつ切り出しながら | gzip -c >> file.gz に繋ぐ。
dd if=file bs=適当 skip=0 count=1 | gzip -c > file.gz
dd if=file bs=適当 skip=1 count=1 | gzip -c >> file.gz
dd if=file bs=適当 skip=2 count=1 | gzip -c >> file.gz
...
0709名無しさん@お腹いっぱい。2008/01/05(土) 09:05:05
>>706
せんせー、ktermは?
0710名無しさん@お腹いっぱい。2008/01/05(土) 09:54:28
そのネタあんまりおもしろくないよ。
0711名無しさん@お腹いっぱい。2008/01/05(土) 10:16:01
>>709
ひねりが足りない。
0712名無しさん@お腹いっぱい。2008/01/05(土) 10:42:03
昭和シェルしか使ったこと無いな
0713名無しさん@お腹いっぱい。2008/01/05(土) 17:02:33
スクリプトの中で

n=2 の時は
command "$1" "$2"
n=4 の時は
command "$1" "$2" "$3" "$4"
というように、変数nに応じて引数の数を変える処理をしたいと思ってます。
command "$1" ... "$n"
どうすれば実現できるでしょうか?
0714名無しさん@お腹いっぱい。2008/01/05(土) 17:13:03
echo $#
0715名無しさん@お腹いっぱい。2008/01/05(土) 17:13:27
って、command "$@" でいいんかな?
0716名無しさん@お腹いっぱい。2008/01/05(土) 17:20:44
あるコマンドの引数に変数をしようとしているのですが、
'があるため展開されずに困っているのですが、
どうすればいいでしょうか?
----------------------------------------
hensu=123
command arg='${hensu}'
----------------------------------------
0717名無しさん@お腹いっぱい。2008/01/05(土) 18:11:44
>>708
それ、gzファイルが切れ目なくくっついちゃって、解凍できなくないか?
0718名無しさん@お腹いっぱい。2008/01/05(土) 18:17:37
>>716
'を使わない。
0719名無しさん@お腹いっぱい。2008/01/05(土) 18:34:06
>>717
知らないなら試せよ。
0720名無しさん@お腹いっぱい。2008/01/05(土) 19:42:03
>>718
レスありがとうございます。
いや、'を使わないとcommandの処理が正常に終了したいので、
どうにかして'付きで渡したいんです。宜しくお願いします。
0721名無しさん@お腹いっぱい。2008/01/05(土) 19:57:50
>>720
'で囲まれるとパラメーター置換は行われない。'で囲む事とパラメーター置換を行う事は排他。
0722名無しさん@お腹いっぱい。2008/01/05(土) 20:11:42
>>721
教えていただいて、ありがとうございます。難しいですね。
そうしたら、例えば、phpでいうと、
"'" . $hensu . "'"
のような文字列を結合することってできますか?
0723名無しさん@お腹いっぱい。2008/01/05(土) 20:11:44
"を使う
0724名無しさん@お腹いっぱい。2008/01/05(土) 20:12:36
>>720
$hensu を展開した上で、commandには ' ' を付けて渡したいということだろ?
だったら、

command arg=\'$hensu\'

>>721
知らないなら黙ってればいいのに。
0725名無しさん@お腹いっぱい。2008/01/05(土) 20:19:31
>>708
初めて知った
gzipはパイプ前段でddが動いてることも、>>でシェルが同じファイルに追加書きしてることも
わからないと思うんだけど、どうやって同じファイルを分割圧縮してるんだ?
0726名無しさん@お腹いっぱい。2008/01/05(土) 20:43:53
>>724
ハイハイ>>722見て後出し。>>721の何処が正しくないんだ言ってみろクズ。
0727名無しさん@お腹いっぱい。2008/01/05(土) 20:50:33
>>726
' ' で囲んだ上でパラメータ置換を行なうことはできる。排他ではない。
0728名無しさん@お腹いっぱい。2008/01/05(土) 21:08:09
arg="'${hensu}'"

クォートで渡すとhensuに空白文字があったときに面倒なことになる気がす
0729名無しさん@お腹いっぱい。2008/01/05(土) 21:34:54
>>727
>>724は囲んでいるのではなく、'を連結しているだけ。 しかも>>728が指摘しているとおり無様。

>>728は一見囲んでいるようには見えるが、arg="'${hensu}''"でも通るので却下。
0730名無しさん@お腹いっぱい。2008/01/05(土) 21:37:28
追記:
>>728>>722の回答としては正しい。

> 'で囲まれるとパラメーター置換は行われない。
の反例としては却下。
0731名無しさん@お腹いっぱい。2008/01/05(土) 21:42:10
>>725
dd if=file bs=適当 skip=0 count=1 | gzip -c > 1.gz
dd if=file bs=適当 skip=1 count=1 | gzip -c > 2.gz
dd if=file bs=適当 skip=2 count=1 | gzip -c > 3.gz
cat ?.gz > file.gz

とやったfile.gzでも、gzip -dで全体が解凍できたわ。一方gzipをcompress/uncompressに
変えたら、ファイル蛾物故割れて解凍できなかった。圧縮時は単なるファイルの連結でも、
解凍時にgzipが連結ファイルであることを認識して、続きを解凍してくれてるんだな。
0732名無しさん@お腹いっぱい。2008/01/05(土) 23:03:18
>> 'で囲まれるとパラメーター置換は行われない。
>の反例としては却下。
却下
0733名無しさん@お腹いっぱい。2008/01/05(土) 23:57:08
>>732
↓これへの反論も出来ない池沼は黙ってればいいのに。
>>728は一見囲んでいるようには見えるが、arg="'${hensu}''"でも通るので却下。
0734名無しさん@お腹いっぱい。2008/01/06(日) 00:07:54
>>733
それがどうした。
却下
0735名無しさん@お腹いっぱい。2008/01/06(日) 12:52:56
指定ディレクトリ内の容量チェックについて、
du -sh 以外で高速な方法はないでしょうか。

ファイル数や容量が多い場合、
du -sh にかなり時間がかかることが多いためです。
0736名無しさん@お腹いっぱい。2008/01/06(日) 20:28:38
>>735
それらファイルの所有者を測定用ユーザにしてquotaを設定しとく
0737名無しさん@お腹いっぱい。2008/01/07(月) 02:33:08
変数に変数を入れたいです。

n=1
var${n}=foo
echo var1=foo

直接はできないっぽいんですが、こういう時の上手い手ってありますか?
0738名無しさん@お腹いっぱい。2008/01/07(月) 02:59:13
>>737
eval var$n=foo
07397372008/01/08(火) 02:38:23
>>738
目から鱗でした
0740名無しさん@お腹いっぱい。2008/01/08(火) 16:30:29
shスクリプトを作成して、inetd経由で叩こうとしてますが、
shスクリプトの中で、readで読んだ変数に改行コードらしきコードが入っていて、
うまく処理が動きません。

シェル変数 AAA,BBBの最後の1バイトを取ってあげれば動くと思うんですが、
どうやれば良いでしょうか?

以下がサンプルのスクリプトです。
コマンドラインで起動すると、PATH_VARは、キーボードから入力した2つの文字列が
'/'で連結されて表示されるのですが、これをinetd経由でtelnetから起動すると、
PATH_VARが変な文字(シェル変数AAAが設定されない?)となってしまいます。

#!/bin/sh
read AAA
read BBB
PATH_VAR="$AAA/$BBB"
echo $PATH_VAR

0741名無しさん@お腹いっぱい。2008/01/08(火) 16:38:40
>>740
readで読み込むと、改行コードは自動的に取り除かれる。
問題になってるのは、改行 \n じゃなくて 復帰 \r (^M) じゃないのかな

^M を取り除くには tr とか使う。
0742名無しさん@お腹いっぱい。2008/01/08(火) 16:44:33
>>740

read AAA
read BBB
PATH_VAR=`echo "$AAA/$BBB" | tr -d '\015'`
echo $PATH_VAR
0743名無しさん@お腹いっぱい。2008/01/08(火) 16:59:36
>>742
THXです。
おっしゃる通り、改行ではなく復帰でした。
だから、PATH_VARを表示した時に、AAAが表示されなかったんですね。
大変助かりました、どうもありがとうございました。

改修バージョンはこんな感じになりました。
#!/bin/sh
read line ; AAA=`echo $line | tr -d \\\r`
read line ; BBB=`echo $line | tr -d \\\r`
PATH_VAR="$AAA/$BBB"
echo $PATH_VAR
0744名無しさん@お腹いっぱい。2008/01/08(火) 17:48:07
なんかおかしい、制御文字? と思ったら、hexdump -Cに食わせてみると良い。
0745名無しさん@お腹いっぱい。2008/01/08(火) 19:03:22
>>753
そういうやり方もありですね。

>>745
echo $AAA | hd
ってやるとちゃんと制御コードが確認出来ました。

シェル変数の中身ってこうすればHEXでみれたんですね。
\とか、"とか、'とか、`とかをシェル変数に突っ込むときに、
いつも困ってたんですが、良いこと聞きました。
ありがとう。
0746名無しさん@お腹いっぱい。2008/01/09(水) 13:39:56
hd -c
0747名無しさん@お腹いっぱい。2008/01/09(水) 13:45:28
hdコマンドというのは FreeBSD方言なわけだが、、

よりポータブルには、od -Ax -t x1 だな。
0748名無しさん@お腹いっぱい。2008/01/17(木) 00:04:48
コンマで区切った各データを変数に入れるにはどうしたらいいんでしょうか?
0749名無しさん@お腹いっぱい。2008/01/17(木) 00:23:08
IFS=,
read v1 v2 v3
0750名無しさん@お腹いっぱい。2008/01/17(木) 01:03:42
bash 限定
read -d ,
0751名無しさん@お腹いっぱい。2008/01/17(木) 03:52:18
シェルの話じゃないかもしれませんが、もし適当なスレがあったら誘導してくださいませ

find . -type f -regex ".*\.[ch]\(pp\|xx\)?"
で*.cppとか.hだけを列挙できるわけですが
updatedbの--findoptionsに
updatedb --findoptions='-type f -regex ".*\.[ch]\(pp\|xx\)?"' --localpath='./' --output='/home/someone/sources.db'
などと同様に指定してもうまくフィルタリングされません(上のコマンドで生成されたものを使うと普通にディレクトリ名や要らないファイルが引っかかる)
どうにかupdatedbで生成されるデータベースの内容をコントロールする手は無いんでしょうか?
0752名無しさん@お腹いっぱい。2008/01/18(金) 00:42:15
>>751
そんなオプションがあるんだ。
プラットフォームは何?

クォートに問題がある気がするんだけど、これならどう?
--findoptions="-type f -regex \".*\.[ch]\(pp\|xx\)?\""

0753名無しさん@お腹いっぱい。2008/01/18(金) 22:20:53
実際にどういう引数がfindに渡っているか調べればいい。
OSによって違うだろうけど道具はあるはず。
多少牛刀な気もするがシステムコールのトレースとか。
0754名無しさん@お腹いっぱい。2008/01/19(土) 00:57:26
牛刀ってなに?
おっぱいが牛みたいな可愛い女の子剣士?
■ このスレッドは過去ログ倉庫に格納されています