2008年2月 3日

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

木村です。

私も最初は同じような事を考えて echo $? や test ${1+"$@"} のようなことを試しましたが
期待したような結果は得られませんでした。Googleで検索してもこれについての解説を
見つけるのは難しいと思い bash のソースコードを見ました。
ファイル名やコメントから判断して subst.c に書かれているようです。
case 等で ':' を判定している箇所があります。
それ以上は理解できませんでした。


たぶん、":" があるときはパラメータ(この場合は$1)がセットされているかどうかをチェックして、
セットされていれば置き換える。":" が無ければパラメータがセットされているかどうかを
チェックして、セットされていてもされていなくても置き換えない。ということだとは思います。

以上。

> ----------------------------
> echo ${d:-$(pwd)}
>
> 上記の式からコロン (:) を省略すると、シェルは parameter が設定されているかどう
> かを判別するためにチェックだけします。
> -----------------------------
>
> と書かれていますが
>
> チェックだけします。 とは
> 真なら1、偽なら0を返す
> という意味でしょうか?


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




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