加藤(大阪)です。 極一部に反応します。 Wed, 25 Feb 2004 01:30:58 +0900 付 松本 悟 <helios.reds@xxxxxxxxxxxxxxx> さんのメールより: > つまり "$@" は "$1" "$2" ... と同じです。位置パラメータが無い場合 > には、"$@" と $@ を展開しても空文字列になります (つまり取り除かれます)。 > > …とあるのですが、読み込みが足りないせいかもしれませんが、いまひとつ何を > 意味しているのか理解できていません。 > > なにかヒントや気になることでもありましたら、どうぞご教授願います。 (以下は、実際に試してみられることをお推めします) 適当なテスト用ディレクトリを作って、その中で tst1 tst2 と言う 2個のシェ ルスクリプトを作ってみて下さい。 --- tst1 の内容 #! /bin/sh echo +++ this is test1 echo '$@ =' $@ $@ echo +++ test1 exit --- tst2 の内容 #! /bin/sh echo === this is test2 echo $@ ls echo === test2 exit 次のコマンドラインを実行してみて下さい。 $ ./tst1 ./tst2 123 abc (ご覧の通り、tst1 スクリプトを ./tst2、123、 abc、と、3個のパラメータ 付きで実行しています。123 以下をいろいろ替えてみて下さい) 以下は実行結果です。 +++ this is test1 $@ = ./tst2 123 abc === this is test2 123 abc tst1 tst2 === test2 exit +++ test1 exit つまり tst1 の "$@" が、 ./tst2 123 abc と言うコマンドラインに相当するわけです。 例えば installwatch の該当行の直前に echo $@ を挿入すれば、$@ の正体を知る手掛りに成ると思います。 同様にして、echo $なんたら、で「$なんたら」変数の価を知ることが出来ま す。 極めて原始的なテクですが・・・。 -- 加藤 雅 <mkato@xxxxxxxxxxxxx> http://add10.hp.infoseek.co.jp/rox/