2008年1月24日

[linux-users:107905] Re: シェル ${1+"$@"} とは?

 しらいです。

In Message-Id <o6gtzl34hyy.wl%ishioka@xxxxx>
"L.Takashi ISHIOKA" <ishioka@xxxxx>さんwrites:
> えらそーにかきつつ : を見落としている いしおかです. 駄目駄目です.

> 件のスクリプトは 「:」 が抜けてるバグがあるんでしょう.
>

> で 動きを考えた時に, 第一引数に '' を渡すと以降のパラメータを無視して
> 起動する... のでなければ $@ でいいですよね.
> # 渡したいのは $@ であって 今回は $@ で全然問題がないように見えます.

 敢えて ${1+"$@"} の必要性があったと仮定してみると、引数が
存在しない場合に "$@" が "" (長さゼロの文字列) に展開されて
しまうようなバグが bash の何れかの version に存在したとか。
 もしくはそう思い込んでいたとか。実際は Bourne shell の頃か
ら "$@" は引数が無ければ引数なし状態に展開されるんですけどね。

 ${1:+"$@"} もそれはそれで余り意味を見出せないような気がす
るので、何かしら単なるバグ以外の意味があったんじゃないかなー。

しらい たかし


投稿者 xml-rpc : 2008年1月24日 21:15
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/68960
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。