トップページunix
987コメント345KB

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

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

前スレ
シェルスクリプト総合 その12
http://pc11.2ch.net/test/read.cgi/unix/1218277263/
04273862008/12/03(水) 13:54:37
「文字列中のパラメータ・ラインとして展開する」
--->expand_param("文字列")
「文字列をコマンドとして実行し標準出力を展開する」
--->expand_stdout("文字列")
もし、こういう仕様であったなら、

"$(cat file)" は、丁度、
expand_param(expand_stdout("cat file"))
というように書け、なんの推定の余地もないはずだったのです。
もしこうであったなら、マニュアルを読まなくても、色々な展開パターン
を好きなように書けます。展開の順序も推定の余地がありませんし。
04283862008/12/03(水) 13:55:32
誤字訂正:
「文字列中のパラメータ・ラインとして展開する」
--->
「文字列をパラメータ・ラインとして展開する」
04293862008/12/03(水) 13:58:41
>>427の例とは逆に、>>426のように、変数を展開してからバッククォーテーション
を実行したい、という場合ならば、

expand_stdout(expand_param("command $var"));

で書けるわけです。この場合、""や``の中で色々な記号が「展開」される
かどうかを憶えている必要もないし、マニュアルを読み込む必要もありま
せん。
0430名無しさん@お腹いっぱい。2008/12/03(水) 13:58:46
シェルっていうのは、本来はインタラクティブな目的のためのもので、
記述量を多くして読みやすくするための言語じゃない。

前提知識なしに読みやすくしたいなら、外部コマンドを呼ぶにも、
execute_external_command("ls", "-l");
と書くような言語を作らないといけない。

他の適当なスクリプト言語使っとけと。
0431名無しさん@お腹いっぱい。2008/12/03(水) 13:58:57
>>421
Google で検索可能だなんて >>417 は言ってないよ。
04323862008/12/03(水) 14:01:35
>>431
「本やネット」で検索できるかどうかを論じているわけです。
ネットで検索する場合、Googleで検索可能でないと、いったい何で
検索可能なんでしょうか?

記号単独の検索でも難しいのに、文脈依存性が高い言語仕様の場合、
探し出すのに非常に時間がかかります。
04333862008/12/03(水) 14:02:30
>>430
結局、そうなんです。

コマンドラインで短く打つ事と、わかりやすさのトレードオフになって
くるんでしょう。
0434名無しさん@お腹いっぱい。2008/12/03(水) 14:04:48
んじゃ、仕様が完成したら、ここに報告に来てくれ。
04353862008/12/03(水) 14:05:18
いや、ここで議論したい。
0436名無しさん@お腹いっぱい。2008/12/03(水) 14:05:46
で、トレードオフの結果が、今のシェルだ。
100歩ゆずって、plan9 の rc だ。
もっと勉強しろ。
04373862008/12/03(水) 14:07:03
>>436
今のシェルは、トレードオフの仕方が「下手」であったと考えます。
plan9のrcは知りません。
0438名無しさん@お腹いっぱい。2008/12/03(水) 14:26:00
>>437
お前の頭の悪さには負けるよ。
仕様も理解せずに批判しようと言うのだから。
レベルが低すぎて話にならない。
0439名無しさん@お腹いっぱい。2008/12/03(水) 14:28:03
30年も現役の言語を、
30分で読めるsh(1)さえ読まずに、
批判しようと言うのが間違ってる。
0440名無しさん@お腹いっぱい。2008/12/03(水) 14:34:08
>>439
一般人は30分では読めん。
0441名無しさん@お腹いっぱい。2008/12/03(水) 14:36:18
30年も現役であっても、このような劣悪な状態であったのは、市場が
閉鎖的であっただからか。
0442名無しさん@お腹いっぱい。2008/12/03(水) 14:54:18
ここは30年も使い続けられたクソ仕様の sh を
無理に延命させるスレということでいいよ。

まったく別の言語仕様のシェルがほしいって話なら
perl でも emacs でも好きなものを chsh で設定すればいいじゃないか。
このスレでやることじゃない。
0443名無しさん@お腹いっぱい。2008/12/03(水) 14:55:45
コマンドラインで短く打てて、インタプリタ方式だから試行錯誤が容易。
素人でも頑張ればなんとかかんとか使える敷居の低さが普及の最大の要因だと思う。

ところでシェルスクリプトとは全く別のスクリプトの策定に協力しろなどというのはこのスレの趣旨とは違うだろ。
シェルスクリプトで可読性が低いな、とか不便だな、とか思ったことはありませんか?と情報を集めるならばまだしも、議論を求めるのはお門違いだ。
0444名無しさん@お腹いっぱい。2008/12/03(水) 15:34:04
かつてあった(今もある?)OSつくろうスレみたいに、
シェル作ろうスレ立てて、
絶対投げ出さずみんなをひっぱっていくくらいの気概があるなら、
ついていくやつもいるんじゃなかろうか。

ここはそういう場ではないということだ。
0445名無しさん@お腹いっぱい。2008/12/03(水) 19:17:17
シェルスクリプトに大きな不満は無いな。
劣悪な状態だなんて思ってる人いる?

がっちり書きたいならperlなりなんなり使えばいいだけだし
0446名無しさん@お腹いっぱい。2008/12/03(水) 19:54:28
UNIX/Linux界隈でPowerShellみたいなものが主流になることは俺が生きてる内は無いだろうな
0447名無しさん@お腹いっぱい。2008/12/03(水) 22:19:35
Powershellが現行シェル(sh,bash.tcsh,zsh)より優れている点ってなんじゃい?
Windowsとの親和性が高いことの他にだが。
0448名無しさん@お腹いっぱい。2008/12/03(水) 22:29:27
後発だけあってPowerShellの「仕様は」強力でよくできてると思うが
コマンドインタプリタ/スクリプティング用途には起動が致命的に重くて
俺には使い道が無い

.NETやJava系は、そのプロセス起動の重さのお陰で
Unix流のツールボックスアプローチ的使い方には
全く不向きなプラットフォームだと思っている
計算性能においてははるかに劣るLLの方が、マシ
0449名無しさん@お腹いっぱい。2008/12/03(水) 22:55:00
GoogleがHotなんとかとかいうチト変わったシェル作ってなかったっけ?
0450>>3812008/12/03(水) 23:37:48
>>382
ありがとうございます。

ふと思ったのですが、数値比較の場合、どのようになりますか?

----- コーテーションなし------------------------------------
$ cat hoge.sh
#!/bin/sh

hoge=
if [ $hoge -eq 10 ]; then
echo hello
fi

$ ./hoge.sh
[: -eq: unexpected operator

----- コーテーションあり--------------------------------------
$ cat hoge.sh
#!/bin/sh

hoge=
if [ "$hoge" -eq 10 ]; then
echo hello
fi

$ ./hoge.sh
[: : bad number


どっちにしても、エラーがでる、、、、orz
0451名無しさん@お腹いっぱい。2008/12/04(木) 00:09:08
半日でえらくスレが消費されてて、
おそるべきはニートだなと改めておもった
0452名無しさん@お腹いっぱい。2008/12/04(木) 00:45:33
>>450
一体何をしたいんだ?

純正シェルでも使えるのか知らんが、適当にデフォルトの値(ここでは0)を決めておいて
${hoge:-0}
と書けば、hoge が宣言されていないか、宣言されているが値が無いときに 0 に評価される
0453名無しさん@お腹いっぱい。2008/12/04(木) 01:03:38
数値以外をはじかなければエラーがでる。
0454>>4502008/12/04(木) 07:03:48
>>452
おぉ、ありがっとん。
0455名無しさん@お腹いっぱい。2008/12/04(木) 08:35:29
sedで質問です。

sedの置き換え文字列に改行を含む場合、以下のようになります。

hoge() {
echo "start"
sed 's/hoge/foo \
bar/'
echo "end"
}

しかし、これですと、インデントがそろわず、不恰好になります。
インデントをずらす方法はないでしょうか?
0456名無しさん@お腹いっぱい。2008/12/04(木) 10:33:51
気にすんな。
0457名無しさん@お腹いっぱい。2008/12/04(木) 10:37:11
>>455
sedの内容を、シェル関数外でシェル変数(regex)とかに代入しておいて、
シェル関数内では sed "$regex" と書けば良い。


>>456
気にしろ
0458名無しさん@お腹いっぱい。2008/12/04(木) 13:03:26
bash/GNUツール前提でいいよ

あと最近は、OSXのやつらの台頭でスペース文字含みのファイルとか
余裕で出てくるようになったからその辺を気にしないといけなくなった
0459名無しさん@お腹いっぱい。2008/12/04(木) 13:18:18
>>457
regewxを定義するところが不恰好になるだけじゃ…

>>455
きにすんな
0460名無しさん@お腹いっぱい。2008/12/04(木) 13:28:40
sed `echo 's/hoge/foo \
bar/' | sed -e 's/ //g'`
二行目はhtab使ってるから注意しな。
0461名無しさん@お腹いっぱい。2008/12/04(木) 13:39:41
見た目を気にするならもっとまともな言語使え。
マニュアルを読まないと推定できないような言語じゃなくて。
0462名無しさん@お腹いっぱい。2008/12/04(木) 13:47:47
>>459
だから、インデントのいらない階層であるところの「シェル関数外」で
regexに代入するんだろ。
もともとインデントゼロのスコープに書くんだから、
不恰好にならない。

頭使え。
0463名無しさん@お腹いっぱい。2008/12/04(木) 14:01:24
>>455

N='
'

hoge() {
sed "s/hoge/foo ${N}bar/"
}


>>456
気にしろw
0464名無しさん@お腹いっぱい。2008/12/04(木) 14:06:14
あ、>>463 のsedの ${N}の前にバックスラッシュ入れてね。
なぜかこの環境から書き込むとバックスラッシュが化けるので、、

ダブルクォートの中だからバックスラッシュは2つね。
0465名無しさん@お腹いっぱい。2008/12/04(木) 23:01:38
新しい2ch語誕生の瞬間?






ってほどでもないかw
0466名無しさん@お腹いっぱい。2008/12/06(土) 10:43:43
>>465
気にすんな
0467名無しさん@お腹いっぱい。2008/12/06(土) 11:20:20
>見た目を気にするならもっとまともな言語使え。
>マニュアルを読まないと推定できないような言語じゃなくて。

シェルスクリプトすら書けないんなら、この業界から足をあらってカタギになれ!
0468名無しさん@お腹いっぱい。2008/12/06(土) 11:29:54
マニュアル読んだら推定じゃなくて理解してくれ。
0469名無しさん@お腹いっぱい。2008/12/06(土) 11:43:31
>マニュアルを読まないと推定できないような言語じゃなくて。
マニュアルを読んでも推定しかできないんなら、カタギになれ!
0470名無しさん@お腹いっぱい。2008/12/06(土) 12:07:18
マニュアルが完全じゃないこともそれなりにあるのがUnix
0471名無しさん@お腹いっぱい。2008/12/06(土) 13:06:54
>>467
何言ってんだおまえ
0472名無しさん@お腹いっぱい。2008/12/06(土) 21:49:18
`いいからカタギになれ
0473名無しさん@お腹いっぱい。2008/12/06(土) 22:13:05
ああちくしょう。超バカーなスクリプト書いてしまった↓

FOUND=false
netstat -lnx | grep /tmp/ssh | while read i; do
 set -- $i
 if [ -O "$9" ]; then
  SSH_AUTH_SOCK=$9; export SSH_AUTH_SOCK
  SSH_AGENT_PID=`echo $9 | cut -d. -f2`; export SSH_AGENT_PID
  FOUND=true
 fi
done
$FOUND || eval `ssh-agent -s`

シェルスクリプトでwhileはサブシェルなのだと何回やれば判るのかと・・・
0474名無しさん@お腹いっぱい。2008/12/06(土) 22:27:37
s/while/|while/; #今日はもうダメポ。寝る!
0475名無しさん@お腹いっぱい。2008/12/07(日) 00:28:05
文字列を返す関数を作るのが定石かと。
0476名無しさん@お腹いっぱい。2008/12/07(日) 00:37:51
shをインデントするツールないの?
0477名無しさん@お腹いっぱい。2008/12/07(日) 01:58:21
Emacs
0478名無しさん@お腹いっぱい。2008/12/07(日) 03:53:34
vim
0479名無しさん@お腹いっぱい。2008/12/07(日) 15:29:09
gedit
0480名無しさん@お腹いっぱい。2008/12/07(日) 17:40:52
vim /bin/sh ってやったら文字化けしましたが…
0481名無しさん@お腹いっぱい。2008/12/07(日) 19:13:55
vim -b /bin/sh -c '%!xxd'
0482名無しさん@お腹いっぱい。2008/12/07(日) 20:46:49
vimやemacsでどうやってインデントするのか教えてください!
0483名無しさん@お腹いっぱい。2008/12/07(日) 20:50:13
いやです
0484名無しさん@お腹いっぱい。2008/12/08(月) 03:56:00
>>455
もう質問者いなそうだけどOSによっては改行として"^J"を使う手も
vi だと挿入モードの時、ctrl + v してから ctrl + j で入力

sed 's/hoge/foo \
bar/'



sed 's/hoge/foo ^Jbar/'

OSを選ぶので汎用性もないしオプションなしのcatやmoreだと"^J"の部分が
改行になるかもと色々問題ありまくりだけど場合によってはこんな方法もってことで

あと"^J"使える場合はヒアドキュメントも cat - <<END^JOK^JEND と1行で書ける
意味あるかどうか人それぞれだろうけど
0485名無しさん@お腹いっぱい。2008/12/08(月) 11:22:53
OSというかshellの問題。
改行扱えないsedは存在しないんじゃないかな。
0486名無しさん@お腹いっぱい。2008/12/08(月) 11:45:11
>>485
そういう問題じゃないんだよ。
もとの質問の >>455 よくよめ

UNIX環境では ^J は改行そのものなので、
>>484 の方法では全く解決にならない。
0487名無しさん@お腹いっぱい。2008/12/08(月) 12:06:41
GNUの奴なら\nでいいのにーとかいう話?
ぶっちゃけPerl使えばいいんじゃね?
0488名無しさん@お腹いっぱい。2008/12/08(月) 21:51:54
>>487
だからちゃんと見てやれよw
04894872008/12/08(月) 22:49:22
>>488
あ、ごめん、俺のは横レスだから>>485あたりの人とは別人

>>455見る限りでは、GNUではないsedだから置換文字列に\nが
使えなくてああいう書き方をしてて、それがいやだってんでしょ?
そう読めたけど
0490名無しさん@お腹いっぱい。2008/12/08(月) 22:53:55
>>484>>485>>486
俺には^Jをどう表示するかというエディタの問題に思えるが…
>>456>>459>>466>>487
禿同
0491名無しさん@お腹いっぱい。2008/12/09(火) 04:04:02
Linux板では回答が貰えないようなのでこちらに来てみました。

分かる方が居たらお願いします。
http://pc11.2ch.net/test/read.cgi/linux/1210999497/611
0492名無しさん@お腹いっぱい。2008/12/09(火) 10:23:37
ssh-agent 使えって示唆が出ているが?
0493名無しさん@お腹いっぱい。2008/12/09(火) 10:29:17
2スレ並列でやる必要もあるまい。
0494名無しさん@お腹いっぱい。2008/12/10(水) 22:03:11
AIXに導入するシェルを作ってるんですけど・・・。
if [ 変数 != 文字列A ] | [ 変数 != 文字列B ];then
ERROR処理
fi

ネスト無しでやる場合これって有りかな?
数値じゃないから-oは使えないんでこれしかやりようがなかったんすけど
有識者の方頼みます
0495名無しさん@お腹いっぱい。2008/12/10(水) 22:08:05
>>494
| じゃなくて || な。

if [ 変数 != 文字列A ] || [ 変数 != 文字列B ]; then


あと、数式じゃなくても -o 使えるよ。

if [ 変数 != 文字列A -o 変数 != 文字列B ]; then


-o が使えないのは [[ ]] の場合。その場合は、

if [[ 変数 != 文字列A || 変数 != 文字列B ]]; then
0496名無しさん@お腹いっぱい。2008/12/10(水) 22:12:30
しかし、「変数」が同じ変数なら、
意味的には、やりたいことは -o (||) じゃなくて、-a (&&) のような気がする。
0497名無しさん@お腹いっぱい。2008/12/10(水) 22:14:20
>>494
この場合、if [ ] よりも case を使った方が簡単に書けるよ。
0498名無しさん@お腹いっぱい。2008/12/10(水) 22:17:11
>>495
実は|でいけたんっすよ
テストケース作って試したんですけど、一応正常系も異常系も通りました。。。
-oについては明日また試してみます
ありがとうございます
0499名無しさん@お腹いっぱい。2008/12/10(水) 22:20:22
>>497
ミドルのステータスチェックを増やしたんすよ
元が共通シェルだから余り大幅な変更は出来ないんです
caseの方が良いのはその通りなんですが・・
0500名無しさん@お腹いっぱい。2008/12/10(水) 22:21:10
>>498
行けたように勘違いしただけで正常に変数チェックされていない。
| は パイプ。パイプでは、A | B の場合、Bが真か偽かしかチェックされない。
(Aは無関係になる)

具体的には、
if [ 変数 != 文字列A ] | [ 変数 != 文字列B ];then
だと、
[ 変数 != 文字列B ] だけがチェックされて、
[ 変数 != 文字列A ] の結果は無視される。
それをたまたま「行けた」と勘違いしただけ。

全然行けてないので勘違いしないように。
0501名無しさん@お腹いっぱい。2008/12/10(水) 22:25:43
>>500
確かに文字列Bの追加したステータスチェックは通ったけど、文字列Aは怪しいですね。
了解しました
参考にさせていただきます。

>>495
>>496
>>497
>>500
有難うございました。
0502名無しさん@お腹いっぱい。2008/12/10(水) 23:16:01
「シェル」を作っているのですね?
0503名無しさん@お腹いっぱい。2008/12/11(木) 01:28:58
簡単なコンソールゲームを作りたいんですけど
下の1から3に画面を変えるときは
clearして全部表示しなおすしかないですかね?
表示しなおしたい部分だけ変えるってできないのかな?

1.
□■□
□□□
□□□

2.
□□□
□■□
□□□

3.
□□□
□□□
□■□
0504名無しさん@お腹いっぱい。2008/12/11(木) 01:57:32
ANSI系端末決め打ちなら、
エスケープシーケンス出力してカーソル動かせばいい。

zshならcursesモジュールがあるから端末独立なスクリプトも書けるだろうけど。
0505名無しさん@お腹いっぱい。2008/12/11(木) 08:43:50
>>503
tput使え。
例えばtput cuu1がカーソルを一行上げる。
tput homeで左上へ移動。
0506名無しさん@お腹いっぱい。2008/12/11(木) 21:06:49
>>503
シェルでは無理。
強いてやるなら、echo;echo;echo;echo;.... で画面を全部流してから、
新しい画面の文字を全部 echoし直すしかないかな。
0507名無しさん@お腹いっぱい。2008/12/11(木) 21:19:52
tput cup ROW COL
0508名無しさん@お腹いっぱい。2008/12/11(木) 21:25:15
http://www.youtube.com/watch?v=HaKhw2nUgTk
0509名無しさん@お腹いっぱい。2008/12/11(木) 21:27:42
カーソル移動がcupかどうか(というか、terminfoかtermcapか)は、OSによる。
FreeBSDならcm。
0510名無しさん@お腹いっぱい。2008/12/11(木) 23:25:31
的外れかも知れないけどエスケープシーケンス使ってグリグリ書くのは駄目なん?
0511名無しさん@お腹いっぱい。2008/12/11(木) 23:37:36
>>509
tputって OS間の互換性ないんだな。
0512名無しさん@お腹いっぱい。2008/12/15(月) 22:27:41
「HP-UXの質問はココだ No4」から移動してきました。
HP-UX11iv2orv3でファイルをある一定の法則に従う複数のディレクトリにコピーするコマンドについて
お知恵をお貸しください。

たとえば、下記のようなディレクトリに同一のファイルを配置したいのですが
論理ホスト名が異なるサーバでも同じコマンドで実行できるようできませんか。

/etc/opt/論理ホスト名1/sh/
/etc/opt/論理ホスト名2/sh/
/etc/opt/論理ホスト名3/sh/

RHELの場合、下記コマンドで実行できたのですが
HP-UXでは、{}を単独で使わないと、検索したパスに置き換えてくれないようです。
(下記記述だと{}を{}そのもので認識されてしまいました。)

find /etc/opt/ -type d -path */sh -exec cp 配布元ファイル {}/配布先ファイル \;
配布元ファイル名と配布先ファイル名は、異なる場合でも対応できるようにしたいです。

よろしくお願いします。
0513名無しさん@お腹いっぱい。2008/12/15(月) 22:31:32
>>512

for dir in /etc/opt/*/sh
do
cp 配布元ファイル $dir/配布先ファイル
done
05145122008/12/15(月) 23:07:52
>>513

レスありがとうございます!!
forは思いつきませんでした
0515名無しさん@お腹いっぱい。2008/12/21(日) 16:32:11
HP-UXではtreeコマンドがないので、以下のシェルで代用しているのですが
http://ash.jp/ash/src/csh/tree.txt

どうせならファイルの詳細情報も表示させたいと思っています。

今のままだと以下の表示なのですが、
+---bin/
+---boot/
|  +---efi/
|  |  +---EFI/

以下のように表示させたい。どうすればよいですか?
+---bin/           drwxr-xr-x 2 root root 4096 2008-12-21 16:11
+---boot/           drwxr-xr-x 5 root root 1024 2008-10-26 05:21
|  +---efi/         drwxr-xr-x 13 root root 4200 2008-12-21 16:03
|  |  +---EFI/       drwxr-xr-x 115 root root 12288 2008-12-21 16:11
0516名無しさん@お腹いっぱい。2008/12/21(日) 17:03:18
あんたは、たとえばawkスクリプトであっても
「以下のawkで代用しているのですが」みたいに書くのか?
0517名無しさん@お腹いっぱい。2008/12/21(日) 17:20:45
>>516
すみませんが、質問だけに答えてください。
0518名無しさん@お腹いっぱい。2008/12/21(日) 17:31:31
 .|  ./川\  |
  \/┏┷┓\/
     。┃お┃。
  ゙ # ゚┃断┃; 。
   ; 。 ・┃り.┃・ #
  。 ;゙ #┃し.┃# 。
  ゙・# : ┃ま┃。 ; 。
 .;:# ゙。゚┃す┃゚ 。 #
 ; 。;; ゙.:。┗┯┛。 # : #
.   ハ,,ハ  |
.  ( ゚ω゚ ) |
  :/  つΦ
0519名無しさん@お腹いっぱい。2008/12/21(日) 21:35:57
>>517
シェルで代用とはどういう事ですか?
0520名無しさん@お腹いっぱい。2008/12/21(日) 22:53:31
>>519
シェルで代用もご存知ない方には聞いていません。

ハイ、次のもっと優秀な回答者

0521名無しさん@お腹いっぱい。2008/12/21(日) 23:17:51
この慇懃無礼な書き込み以前もどこかで見たような?
Emacsスレか?
0522名無しさん@お腹いっぱい。2008/12/22(月) 01:26:40
find . -ls で我慢しなさい
0523名無しさん@お腹いっぱい。2008/12/22(月) 10:13:41
cshだよ!
0524名無しさん@お腹いっぱい。2008/12/22(月) 10:23:11
シェルってゆうな。クズ。
0525名無しさん@お腹いっぱい。2008/12/22(月) 15:25:41
FreeBSDのサーバーには freeコマンドがなく、
不便なのでシェルを作ろうと思うのですが、
具体的にはどう作ればいいですか?
0526名無しさん@お腹いっぱい。2008/12/22(月) 15:32:50
そういう釣りはやめれ。
■ このスレッドは過去ログ倉庫に格納されています