0

何かの前に「@」を付けると、どのような影響がありますか (Java 実行コマンドのクラスパス エントリを含むファイルのパスなど)。

ファイルの内容に関係していることは知っていますが、想像できるように、Google で検索しようとするのは少し難しいです。それについて話しているマンページも見つかりません。

4

3 に答える 3

1

この@文字は、Unix コマンド ラインでは一般的な意味を持ちません。いくつかの一般的なユーティリティで使用されています。a で始まるコマンドは、実行前に行をエコーし​​ないように@指示Makefileします。makeGNU Autoconf は@、 で囲まれた変数 ( など) を@srcdir@、 によって発見された置換で置き換えconfigureます。

于 2012-10-23T22:16:01.837 に答える
1

異なるプログラムでは異なることを意味する場合があります。規則として、コマンドラインの @file は次のように解釈できます。

ファイルからコマンド ライン オプションを読み取ります。読み込まれたオプションは、元の @file オプションの代わりに挿入されます。ファイルが存在しない場合、または読み取れない場合、オプションは文字どおりに扱われ、削除されません。ファイル内のオプションは空白で区切られています。オプション全体を一重引用符または二重引用符で囲むことにより、空白文字をオプションに含めることができます。含める文字の前にバックスラッシュを付けることで、任意の文字 (バックスラッシュを含む) を含めることができます。ファイル自体に追加の @file オプションを含めることができます。そのようなオプションは再帰的に処理されます。 @file のドキュメントからld

于 2012-10-23T22:16:50.610 に答える
1

Bashリファレンスマニュアルから:

シェルはいくつかのパラメーターを特別に扱います。これらのパラメータは参照のみ可能です。それらへの割り当ては許可されていません。

(...)

@

1 から始まる定位置パラメーターに展開されます。展開が二重引用符内で発生すると、各パラメーターは個別の単語に展開されます。つまり、「$@」は「$1」「$2」に相当します…。二重引用符で囲まれた展開が単語内で発生した場合、最初のパラメーターの展開は元の単語の先頭部分と結合され、最後のパラメーターの展開は元の単語の最後の部分と結合されます。位置パラメータがない場合、"$@" と $@ は何も展開されません (つまり、それらは削除されます)。

(...)

エスケープせずに、任意のプログラムのパラメーターで @ (アットマーク) を使用できます。

パラメータでこのようなものを渡す必要がある$@場合は、エスケープする必要があります$(ドル記号)。

于 2012-10-23T22:24:40.520 に答える