2012-09-13 7 views
7

$*はシェルスクリプトではどういう意味ですか?例えば

は、次のコードスニペット

​​
+1

HTTPをシェルスクリプトに渡される引数の数:// TLDP .org/LDP/abs/html/internalvariables.html#ARGLIST – alfasin

+0

コマンドラインからのすべての位置パラメータは、スクリプト:http://tldp.org/LDP/abs/html/internalvariables.html#APPREF – GreenMatt

+0

POSIXをベースとしたドキュメントは、bash以外のものにも適用されるので、ここでは特に便利です。http://pubs.opengroup.org/ onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_05_02 –

答えて

7

これは、スクリプトまたは関数に渡されたすべての引数を単語単位で区切ったものです。

通常は間違っており、引数を適切に区切る"[email protected]"に置き換える必要があります。

+3

まあ、@DМは、既に$ *がどのように最初の文字列として構成されているかを説明しました。ここで重要なのは、引用符で囲まれていない限り、シェルの通常の単語分割*に従うということです。 "$ *"は、引き数がまだ単一の長い文字列として処理されていることを確認します。 "$ @"は引数リストを引用文字列の配列として処理させます。それぞれには使い分けがあり、違いを知ることが重要です。 –

6

を考えることは、自分で答えを見つけるのは簡単です:→/\$\*man bash

特殊パラメータ

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

  • 1から始まる位置パラメータに展開されます。展開が二重引用符で囲まれると、各パラメータの値がIFS特殊変数の最初の文字で区切られた単一の単語に展開されます。つまり、"$*""$1c$2c..."と等しく、cIFSの値の最初の文字です。 IFSが設定されていない場合、パラメータはスペースで区切られます。 IFSがnullの場合、パラメーターは介在するセパレーターなしで結合されます。
1

$*は、そのシェルスクリプトに渡されたすべてのパラメータに展開されます。

$0 =シェルスクリプトの名前

$1 =最初の引数=第二引数

$2 ...など

$# =

関連する問題