シェルスクリプト総合 その19
■ このスレッドは過去ログ倉庫に格納されています
0001シェルスクリプトライター
2011/12/10(土) 20:06:40.38スクリプトのお勉強・自慢・腕試しなどにどうぞ。
□お約束
・特記なき場合は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 でトレースしましょう。
前スレ
シェルスクリプト総合 その18
http://hibari.2ch.net/test/read.cgi/unix/1308195527/
次スレは >>970 で。
0439名無しさん@お腹いっぱい。
2012/03/06(火) 21:12:06.05おいおい、そのリダイレクト方法だと結局同じ理由で駄目だよ。
標準入力を退避しておいて復帰する。
exec 3<&0
while read ARG1 ARG2
do
${CCOM} ${ARG1} ${ARG2} 0<&3
done < ${LIST}
0440名無しさん@お腹いっぱい。
2012/03/06(火) 21:17:04.64>>438 が言いたかったのは
↓じゃないかな
exec 3< ${LIST}
while read ARG1 ARG2 0<&3
do
${CCOM} ${ARG1} ${ARG2}
done
0441名無しさん@お腹いっぱい。
2012/03/06(火) 22:15:57.04> でオッケーでしょうか?
オッケーだと言う人がいたらしいよ。
ただし私は、貴方の環境と責任を共有していないので、自己責任でやって下さいね。
0442名無しさん@お腹いっぱい。
2012/03/07(水) 00:36:49.85探しています。OSはCentOS6、シェルはbashです
以下のような問題に対処したいのですが、何か手段はありますでしょうか?
以下のsampletext.txt(「\\」や「\」を含む)を、readecho.shのようにreadで読み、
echoで出力すると、「\」がエスケープか何かされているようで、表示されません
bashやechoのmanにある-Eオプションを明示的に付与してみても変化が無いようです
awkprint.shのようにawkで行うと期待した結果が出るのですが、他の処理の関係上、
できればawkは使わずに、シェルスクリプトで実現させる方法を知りたく思ってます
テキストを事前に「\\」から「\\\\」としておく等の対処はせずに済ませたいです
$ cat sampletext.txt
\\winsv\a\b\c
\\sambasv\d\e\f
$ cat readecho.sh
#! /bin/sh
while read STRING
do
echo -E "${STRING}"
done < sampletext.txt
$ ./readecho.sh
\winsvabc
\sambasvdef ←「\\」が「\」になり、「\」が消えている。NG
$ cat awkprint.sh
#! /bin/sh
cat sampletext.txt | awk '{print $0}'
$ ./awkprint.sh
\\winsv\a\b\c
\\sambasv\d\e\f ←上記のような問題はない。OK
0443名無しさん@お腹いっぱい。
2012/03/07(水) 00:42:21.68read -r
0444名無しさん@お腹いっぱい。
2012/03/07(水) 00:42:48.660445名無しさん@お腹いっぱい。
2012/03/07(水) 00:45:02.830446名無しさん@お腹いっぱい。
2012/03/07(水) 00:48:20.73情報ありがとうございました
うまくいきました
bashでもreadは「Backslash does not act as an escape character.」だそうです
なるほどreadで対処するのか...
$ cat readecho.sh
#! /bin/sh
while read -r STRING
do
echo -E ${STRING}
done < sampletext.txt
$ ./readecho.sh
\\winsv\a\b\c
\\sambasv\d\e\f
0447名無しさん@お腹いっぱい。
2012/03/07(水) 00:55:51.24> bashでもread -rは「Backslash does not act as an escape character.」だそうです
と書きたかったのか?
0448名無しさん@お腹いっぱい。
2012/03/09(金) 22:27:14.08Aを開始、
Bを開始
Bの中でAの処理中を待つことできますか?
意味わかりませんかね・・・
mkdirとかロック待ちみたいなやつです。
0449名無しさん@お腹いっぱい。
2012/03/09(金) 22:43:33.00while 文で無限ループ作って、sleep でも挟めば十分「処理待ち」になると思うけど。
0450名無しさん@お腹いっぱい。
2012/03/09(金) 22:44:29.80FreeBSDなら lockf(1)、Linuxならflock(1)を使ってなんとかしろ。
0451名無しさん@お腹いっぱい。
2012/03/09(金) 23:06:08.54ありがとうございます。
がんばってみます。
0452名無しさん@お腹いっぱい。
2012/03/09(金) 23:18:55.14なんで似てるようで違う名前なの?
0453名無しさん@お腹いっぱい。
2012/03/10(土) 00:14:30.880454名無しさん@お腹いっぱい。
2012/03/10(土) 09:50:04.490455名無しさん@お腹いっぱい。
2012/03/11(日) 03:13:24.48for FILE in `find / \( -iname "zoo*.png" -o -iname "land*.png" -o -iname "zoo*.txt -o -iname "land*.txt" \)`; do
rm -vf $FILE
echo $a
done
初心者です、スクリプト書いてみたんですが、この$aで表示される数がおかしくてこまってます。
なぜかrmコマンドでは1つも削除されておらずメッセージも表示されていないのに4と表示されるのです。
やりたい事としてはこうです↓
「zoo*.png、land*.png、zoo*.txt、land*.txtというファイル名のファイルを全て削除し、その数をカウントする」
何がおかしいのでしょうか?
0456名無しさん@お腹いっぱい。
2012/03/11(日) 04:32:12.074が表示されるのはオカルト。君もうすぐ死ぬんじゃない?
ファイルを削除して数をカウントしたいだけなら
find ほにゃらら -print0 | xargs -0 rm -v | wc -l
でよい。変数もforも必要ない。
4が出るのは君がオリジナルのスクリプトをここにコピペするときに何か端折ったせいだろう。
0457名無しさん@お腹いっぱい。
2012/03/11(日) 04:53:51.30ごめんなさい、a=$(($a + 1))が抜けてました...
にしてもこんなにコンパクトになるもんなんですね
ありがとうございました
0458名無しさん@お腹いっぱい。
2012/03/11(日) 08:05:01.28find ほにゃらら -exec rm -v {} + | wc -l
で良い。
0459名無しさん@お腹いっぱい。
2012/03/11(日) 08:11:05.46find ほにゃらら -delete -print | wc -l
0460名無しさん@お腹いっぱい。
2012/03/11(日) 08:14:18.54-exec の方が古い感覚だけどどうなんだろ?
0461名無しさん@お腹いっぱい。
2012/03/11(日) 08:17:25.43-exec ';' なら古い感覚
-exec + は新しい感覚
0462460
2012/03/11(日) 08:29:08.31+ はいま使っているマシンの中では使えない物がほとんどかも。
-exec は元々 Unix に魅せられたポイントなので、1989 年には使ってた。
xargs はネットで教えてもらって 1995 年頃から使い始めた。
けど確か元からあったかも。
0463名無しさん@お腹いっぱい。
2012/03/11(日) 08:32:05.19-exec + はSolarisでさえ使えるのに、どんな古いOS使ってるんだよ?
0464名無しさん@お腹いっぱい。
2012/03/11(日) 08:54:41.56使えないのを探す方が難しいよね。
原始人と言われたからってムキになってウソを教えるのは良くないな。
http://www.pasc.org/interps/unofficial/db/p1003.2/pasc-1003.2-210.html
| One of these extensions, which I believe is supported at least on all
| systems derived from SVR4 and on HP-UX (although in some cases it is an
| undocumented feature), is a variant of the "find -exec" primary where
| "find" does argument aggregation internally:
|
| find . -type f -exec some_command {} +
0465名無しさん@お腹いっぱい。
2012/03/11(日) 09:52:56.43確かテンプレではfind -print0 | xargs -0推奨で、スレ内議論では-exec +を使えと主張する人がいた。
0466名無しさん@お腹いっぱい。
2012/03/11(日) 10:09:06.10られていたから。質問者のためではなく回答者のためのテンプレ。
-exec {} + 構文が紹介されてからはxargsを使う意味がなくなったのか削除された。
それでもしばらくは-exec {} + を知らない原始人がいたけど、そのたびに原始人と
呼ばれて、絶滅していった。テンプレから削除されたのはこの時点(絶滅後)かも。
-exec {} + ですべてが置き換え可能とは言わないが、find+xargsが必要になること
は極めてまれ。
0467名無しさん@お腹いっぱい。
2012/03/11(日) 10:32:32.19あと、パイプで繋がってしまっているrmを画面にも出力する方法ってないんでしょうか?
0468460
2012/03/11(日) 10:44:50.32-exec は fork するから良くないと言われてた。
+ は SVR4 に入っているのなら俺のもだいたい動くね。
でも俺まだ Tower の SVR2 や SVR3 とも格闘してるから。
ファイル名の長さが 14 文字までのやつ。
0469名無しさん@お腹いっぱい。
2012/03/11(日) 10:44:55.572つの違い
-print0や xargs -0は使えないOSがある。
>パイプで繋がってしまっているrmを画面にも
tee
0470名無しさん@お腹いっぱい。
2012/03/11(日) 10:55:09.821 find -exec \; 構文ではファイル一つ毎に別プロセスが起動されるので効率が悪い。
2 そこでまとめて処理できるようxargsが作られた。初出はPWBだからかなり古い
find -print | xargs
3 ファイル名に改行入れられるとヤバいので-print0, -0が設けられた
find -print0 |xargs -0
4 そんな面倒な事しなくて済むように-exec {} + 構文が作られた
-exec \; 構文と違い、別プロセスは(MAX_ARGSを考慮して)まとめて実行される。
> あと、パイプで繋がってしまっているrmを画面にも出力する方法ってないんでしょうか?
find ほにゃらら -delete -print |tee /dev/tty| wc -l
find ほにゃらら -exec rm -v {} + |tee /dev/tty| wc -l
0471名無しさん@お腹いっぱい。
2012/03/11(日) 10:56:05.20例えば?
どっちも相当昔からある気がするけど
0472名無しさん@お腹いっぱい。
2012/03/11(日) 10:58:21.95ちょっとは自分で調べろよ。Solarisで-print0等が使えないのは常識。
0474名無しさん@お腹いっぱい。
2012/03/11(日) 11:06:35.90相当昔といえば言えなくはないが。
http://www.freebsd.org/cgi/man.cgi?query=xargs&apropos=0&sektion=0&manpath=FreeBSD+2.1.5-RELEASE&arch=default&format=html
http://www.freebsd.org/cgi/man.cgi?query=xargs&apropos=0&sektion=0&manpath=FreeBSD+2.1.6.1-RELEASE&arch=default&format=html
0475名無しさん@お腹いっぱい。
2012/03/11(日) 11:22:05.200476名無しさん@お腹いっぱい。
2012/03/11(日) 11:29:54.60SVR[23]のような骨董環境前提の回答なんか意味ない。
0477名無しさん@お腹いっぱい。
2012/03/11(日) 11:38:38.97自分はタイプ数の多いxargsは使わないけどね。
無用な-exec \;と-0無しのxargsさえ避ければ良い。
そもそも今回は-deleteが使えるならxargsも-exec +も要らないし。
0478名無しさん@お腹いっぱい。
2012/03/11(日) 11:42:53.84だから、使える方法を使えばいいってことでしょ?
結論見えてないの?
0479名無しさん@お腹いっぱい。
2012/03/11(日) 11:51:09.25できました!!ありがとうございましたm(_ _)m
0480名無しさん@お腹いっぱい。
2012/03/11(日) 15:05:46.64> 3 ファイル名に改行入れられるとヤバいので-print0, -0が設けられた
改行というか、広い意味での空白($IFS)だな。
0481名無しさん@お腹いっぱい。
2012/03/11(日) 15:27:32.53シングルクォート/ダブルクォートも解釈しちゃうという問題がある。
it_don't_mean_a_thing.mp3
とかのファイル名もそのまま通らない
0482名無しさん@お腹いっぱい。
2012/03/11(日) 20:30:34.37コロン(:)が含まれてるファイル名なんか最悪。。
FILES = $(wildcard *.mp3)
$ make hoge
Makefile:〓: *** multiple target patterns. Stop.
0483名無しさん@お腹いっぱい。
2012/03/11(日) 22:43:26.33基本的な歴史としては>>470の通りなんだが
現代においてはfindで引っかるファイル数が数十万〜数百万ということも珍しくなくなった
そしてそのような場合{} +では処理できない、というか渡された先が悲鳴を上げる
だから 5. としてxargsを-n付きで使うようになったわけ
>>481みたいな問題にもちゃんと解法はある、つーかググレカス
ゆえに{} +はファイルを渡す先が確実に処理できると確信できる場合だけ使うべきで
癖をつけるなら-print0 | xargs -0の流れが正しい
何か問題が起きてもxrgsにオプション足すだけで解決する
つーか、初期の頃はちゃんとそう説明する奴が居たはずだけどな…
0484名無しさん@お腹いっぱい。
2012/03/11(日) 23:15:55.26> 現代においてはfindで引っかるファイル数が数十万〜数百万ということも珍しくなくなった
> そしてそのような場合{} +では処理できない、というか渡された先が悲鳴を上げる
<limit.h>に従った正しいプログラムなら何の問題もないです。
> だから 5. としてxargsを-n付きで使うようになったわけ
これはあほなプログラム向けです。
0485名無しさん@お腹いっぱい。
2012/03/11(日) 23:18:50.93引数の個数に制限がある場合にはxargs -nも有効だが、そんなヘナチョコ
コマンド出会ったことない、具体的には何?
0486名無しさん@お腹いっぱい。
2012/03/11(日) 23:24:03.91その根拠は何?
http://pubs.opengroup.org/onlinepubs/009604599/utilities/find.html
> The size of any set of two or more pathnames shall be limited
> such that execution of the utility does not cause the system's {ARG_MAX}
> limit to be exceeded.
>>484
あほなプログラムの実例
http://savannah.gnu.org/bugs/?func=detailitem&item_id=16738
0487名無しさん@お腹いっぱい。
2012/03/11(日) 23:37:58.77バグがあるので -exec {} + はやめたほうがいいということになるのかな
0488名無しさん@お腹いっぱい。
2012/03/12(月) 07:42:10.36もっとも、>>483がその区別をつけられないだけかも知れないが。
0489名無しさん@お腹いっぱい。
2012/03/12(月) 17:53:31.98・悲鳴あげるヘナチョココマンドの存在は不明
・>>481のようなケースも-print0, -0で対処できるている。
0490名無しさん@お腹いっぱい。
2012/03/12(月) 18:00:08.91>>481 はそういうことを言ってるんじゃない。
>>480 が $IFSだけが問題と言っているのでは誤解を生じるので、
それだけじゃなくクォートも、と言う話。
0491名無しさん@お腹いっぱい。
2012/03/12(月) 18:05:46.84ボケ老人のタワゴトとは>>483の↓この発言。>>481の指摘は正しい。
> >>481みたいな問題にもちゃんと解法はある、つーかググレカス
0492名無しさん@お腹いっぱい。
2012/03/12(月) 18:22:03.41> 何か問題が起きてもxrgsにオプション足すだけで解決する
こっちのほうが問題では。
0493名無しさん@お腹いっぱい。
2012/03/12(月) 18:28:41.55他のfindは使ってないので知らないが。
0494名無しさん@お腹いっぱい。
2012/03/12(月) 18:29:11.30許されているいかなる文字もこれで対応でしょ。
> 何か問題が起きてもxrgsにオプション足すだけで解決する
その問題とは? >>483のボケた脳内にある悲鳴あげるコマンド
しかないのですよ。
0495名無しさん@お腹いっぱい。
2012/03/12(月) 19:10:17.940496名無しさん@お腹いっぱい。
2012/03/12(月) 19:15:52.590497名無しさん@お腹いっぱい。
2012/03/12(月) 22:17:38.36ちったぁ議論らしいことをしたいなら、前提について定義しろよ
お前ら何のOSの事を想定してんだ?Solarisか?AIXか?386BSDか?バージョンは?え?
使ってるコマンドはどこの物だ?OSについてきたコマンドか?GNUのやつか?バージョンは?え?
そこが全然明確じゃないから、いっつもいっつもループしてんのか前に進んでんだか
前にも進んでないんだか分からねえグダグダ展開になってんじゃねえか
お前らの脳内それぞれで、前提狂った状態で、全然違うOSの事で話をしてたって、
意味も価値も実りある結論も、何もありゃしねえんだよ
お前らって、本当、どうしようもないバカだよな
find . -print0 | xargs -0 -I{} mv -vb {} ../tmp
とかした時って同名なのにバックアップ取られないファイルがあったんだけど、-exec +ならちゃんとバックアップされる?
0499名無しさん@お腹いっぱい。
2012/03/12(月) 22:24:10.73バカからも得られるものはあるものさ
バカってのはこういう事を考えてるんだ、こんな風に誤解してるんだ、その程度しか知らないんだ、
じゃあ分かってない人はその辺が分かっていないのかもしれないから、ちょっと注意しよう
そんな目線での考察や気づきは、やっぱりバカからしか得られないものなのさ
0500名無しさん@お腹いっぱい。
2012/03/12(月) 22:33:58.200501名無しさん@お腹いっぱい。
2012/03/12(月) 22:37:33.62find、xargs、mvの仕様、及びファイル名の状態(空白含んでるとか、日本語ファイル名だとか)次第
どんな名前のファイルがこようがこれなら何でもOKという万能包丁は、ぶっちゃけ無い
FAQにも割とマジで"Use Samba and explorer.exe"ともある
0502名無しさん@お腹いっぱい。
2012/03/12(月) 23:04:49.76ジョブ番号とPIDが表示されるじゃないですか。
あれって表示させなくする方法ってあるんでしょうか?
時間のかかる処理をバックグラウンドで走らせて
その間に別の処理をやって、waitで同期する、
みたいなことをやるスクリプトで、邪魔なんですよね。
0503名無しさん@お腹いっぱい。
2012/03/12(月) 23:08:46.69両方使えば?っていう初心者の意見です
0504名無しさん@お腹いっぱい。
2012/03/12(月) 23:19:19.45スクリプト実行しているシェルは何?
0505名無しさん@お腹いっぱい。
2012/03/12(月) 23:21:09.67Solarisです。
0506名無しさん@お腹いっぱい。
2012/03/12(月) 23:30:30.20shは出ない
0507名無しさん@お腹いっぱい。
2012/03/12(月) 23:46:04.45>>1
0508名無しさん@お腹いっぱい。
2012/03/12(月) 23:46:40.54やってみればわかるよ
0509265
2012/03/13(火) 00:27:03.89find . -exec cp -vb ../tmp +
find: -exec: no terminating ";" or "+"
だって・・・
0510265
2012/03/13(火) 00:27:31.16find . -exec cp -vb {} ../tmp +
0511名無しさん@お腹いっぱい。
2012/03/13(火) 04:25:42.37Windows でファイルを処理しきれなかった時ばかりなので
Unix 上のコマンドじゃなく
Windows ネイティブな UNIX-Like tools が
完璧なファイル名対応出来ればいいんだけどな。
Unix 上ではそんなファイル作らない。
0512名無しさん@お腹いっぱい。
2012/03/13(火) 10:06:48.400513名無しさん@お腹いっぱい。
2012/03/13(火) 10:12:13.36> Windows でファイルを処理しきれなかった時ばかりなので
違うよ。root権限で動作するスクリプトが毒食わせられないための用心。
0514名無しさん@お腹いっぱい。
2012/03/13(火) 10:38:44.75移植性が必要ならシェルスクリプトなんて使わないよ
0515名無しさん@お腹いっぱい。
2012/03/13(火) 12:31:59.14それ以上気を遣いたいんなら、単にLL使えばよくね
Perlなら昔から標準でfind2perlとかついてくるし
0516名無しさん@お腹いっぱい。
2012/03/13(火) 23:03:21.13まぁ考え方っつっても、それは別にシェルスクリプトでしか習得できない考え方ではないけれど
0517名無しさん@お腹いっぱい。
2012/03/13(火) 23:19:15.020518名無しさん@お腹いっぱい。
2012/03/13(火) 23:27:28.51シェルスクリプト的に本末転倒なことなのさ
0519名無しさん@お腹いっぱい。
2012/03/13(火) 23:30:41.170520名無しさん@お腹いっぱい。
2012/03/13(火) 23:50:33.10だから(個人的には)シェルスクリプト GREAT! だね。
0521名無しさん@お腹いっぱい。
2012/03/14(水) 03:14:56.05cp a.txt b.txt
というシェルスクリプトが書かれた『hoge.sh』をダブルクリックで実行した場合、
普通はなんの反応もなく、コピーが実行されます。
これを、実行されたコマンドを端末に表示させることはできるでしょうか?
はじめから端末内で
bash hoge.sh
とすればいいのですが、深い階層にあって面倒なので…。
それに、この場合も何のコマンドが実行されたのかが分かりません。
0522名無しさん@お腹いっぱい。
2012/03/14(水) 06:51:12.07hoge.shに以下のように書いておく。
xterm -e sh -xc 'cp a.txt b.txt; set +x; echo -n Hit any KEY:; read key'
0523名無しさん@お腹いっぱい。
2012/03/14(水) 12:25:04.10ありがとうございました m(_ _)m
0524名無しさん@お腹いっぱい。
2012/03/14(水) 23:14:00.92-Tで渡すファイル名をソートする意味ってあるかな?
0525名無しさん@お腹いっぱい。
2012/03/15(木) 18:42:17.16遅いテープに書き込むときに、早めに参照したいファイルをアーカイブの先頭付近に書いておくと
早めに展開される
そんな特性があるので、その特性を活かすためにアーカイブするファイルの順序を指定することは、
意味がある
わざわざソートして渡してるなら、その特性を理解してないだろうから、意味ないだろう
0526名無しさん@お腹いっぱい。
2012/03/15(木) 21:04:05.76────────────────────────────────────
不定個数の整数の引数を与えて実行すると,それらの整数のGCMとLCMを計算して
表示するようなシェルスクリプトを作成せよ.使用シェルは/bin/shとする.
【実行例】
$ ./kadai15.sh 12 20 24
GCM = 4
LCM = 120
────────────────────────────────────
0527名無しさん@お腹いっぱい。
2012/03/15(木) 21:51:58.410528名無しさん@お腹いっぱい。
2012/03/15(木) 22:02:52.24gcmは最大公倍数? w
0529名無しさん@お腹いっぱい。
2012/03/15(木) 22:13:31.83Least Common Multiple
>>528 はアホ
0530名無しさん@お腹いっぱい。
2012/03/15(木) 22:20:19.95最小公約数
0531名無しさん@お腹いっぱい。
2012/03/16(金) 00:21:54.70普通の数学では gcd が圧倒的で、gcm は数学教育の教科書でしか
見たことがない。
0532名無しさん@お腹いっぱい。
2012/03/16(金) 00:26:08.560533名無しさん@お腹いっぱい。
2012/03/16(金) 00:49:16.79http://ejje.weblio.jp/content/%E6%9C%80%E5%A4%A7%E5%85%AC%E7%B4%84%E6%95%B0
0534名無しさん@お腹いっぱい。
2012/03/16(金) 01:11:00.95整数と小数の判定ってシェルでどうやんの?
0535531
2012/03/16(金) 01:13:58.150536名無しさん@お腹いっぱい。
2012/03/16(金) 05:58:58.34{
a=$1; b=$2
while [ $b != 0 ]; do
t=$(($a % $b)); a=$b; b=$t
done
echo $a
}
t=$1; shift
for i; do
gcd=`gcd $t $i`
lcm=$(($t * $i / $gcd))
t=$lcm
done
echo gcd:$gcd lcm:$lcm
0537名無しさん@お腹いっぱい。
2012/03/16(金) 07:15:25.61不正解
引数 12 20 24 の時、
gcd:12 lcm:120 と表示される。
正しくは GCM = 4
あと、/bin/shでは動かない $(( )) とか
0538名無しさん@お腹いっぱい。
2012/03/16(金) 07:43:40.34freebsd の /bin/sh で動いたが
■ このスレッドは過去ログ倉庫に格納されています