- - PR -
setコマンドの「set -- $変数名」の意味について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-11-08 16:52
お世話になっております。
シェルスクリプト(sh)について質問させて下さい。 CSVファイルを処理するのにWebで拾ったサンプルを参考に以下のスクリプトを書きました。 Webやmanで調べ、setコマンドが引数で指定されたコマンドの実行結果を位置パラメータ($1、$2...)へ設定してくれる、という事は理解できました。またIFSの設定がコマンドの引数のセパレータを設定している事も理解できました。 「set -- $LINE」の「--」は何を意味するのでしょうか?manや「set --」をgoogleやここで探してみましたが分かりませんでした。「--」を取るとどうなるかと思い試したところ無くても位置パラメータにデータが設定され、実は不要なのかなと思っています。
尚、コードのほとんどが参照元記事URLから頂いています。 [ メッセージ編集済み 編集者: ryuuji 編集日時 2006-11-08 16:56 ] [ メッセージ編集済み 編集者: ryuuji 編集日時 2006-11-08 18:00 ] | ||||
|
投稿日時: 2006-11-08 17:01
set -- $LINE というのは、$LINEという環境変数に「--」を入れるということです。
おそらく何か意味があるのだと思います。 | ||||
|
投稿日時: 2006-11-08 17:07
Linuxはどうか知りませんが、BSD系だと「man sh」に以下のような記述があります。
「--」がない場合、$LINE が例えば「-x 」という文字列で開始された場合にオプション変更だと解釈されてしまいます。これを防ぐために、「--」を入れて「これ以降はオプション設定ではない」と明示します。 | ||||
|
投稿日時: 2006-11-08 17:59
鰹武士様、スフレ様返信ありがとうございます。
納得しました。シェルはhpuxのshをしていましたのでsh-posix(1)の特殊コマンドのset項を読んだところスフレ様に示して頂いた通りのことが書かれているようです。 ありがとうございました。
|
1