[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00257] Re: test -L file
- Subject: [FDclone-users:00257] Re: test -L file
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Tue, 09 Mar 2004 00:11:13 +0900
しらいです。
最近は SL-C860 の GPL 違反を追ってて手一杯なので、FDclone
にまで手が廻りません。向こうは顧問弁護士まで持ち出して来たの
で、物証を固めないと太刀打ち出来そうになくて。
In Message-Id <86wu5ver4n.knu@iDaemons.org>
"Akinori MUSHA" <knu@iDaemons.org>さんwrites:
> SUSv3 の test(1) では -h と同義の -L が定義されており、 FreeBSD の
> マニュアルページでは -h は互換性の維持のためにあり、代わりに -L を
> 使うように推奨されています。
確かに POSIX 上はそうなのかも知れませんが、「規格にあるか
ら」という理由だけで実装するのは本末転倒だと思っているので、
実際どういう弊害があるのかを挙げて貰えないでしょうか?
SUSv2 でも -L になっているので多分 SystemV の頃からこの仕
様なんでしょうね。KornShell 88 でも -L を使っていて、これが
pdksh に引き継がれ *BSD にも伝搬したようです。
FreeBSD では 3.4-RELEASE から -L を追加したようですが、こ
の版から中身の実装が全然違ってしまっているので、敢えて仕様変
更したという訳ではなくて pdksh から MFC した副作用といったと
ころなんだと思います。
POSIX に準拠するなら -L 以外に -e も足りないでしょう。この
実装部分は optional にしてますので。
一方、FreeBSD の実装、即ち KornShell の実装に準拠するなら
-O, -G, -S や -nt, -ot, -ef や ==, >, < 等足りないものが非常
に多くなります。
このように、規格にばかり目を因われているときりがないので、
実害のない限りは最大公約数的なところに落ち着けたいと思ってい
ます。
一応、FDclone の shell 機能は Bourne shell 互換ということ
になっていて、Bourne shell に実装されていた test は -h を使
っていた頃の古い実装なので、FDclone でもこれに倣っています。
Bourne shell の最終版を何とするかは難しいところなのですが、
Steve Bourne 氏の足跡を辿ると Solaris の /bin/sh が末裔に当
たるんでしょうね。
で、氏が Sun Microsystems にいたのは Solaris 2.4 が出た頃
の 94 年までです。一方、Solaris の sh(1) や test(1) に -L が
現れたのは 1996 年に出た Solaris 2.6 です。
以上から、私の判断では「Bourne shell の test builtin には
-L option が実装されたことはない」という結論に達します。
ま、理論武装しても意味はないので、理詰めの理由ではなく実害
としての理由を示して貰えれば考えます。
しらい たかし