:
[email protected]
bb=$*
echo $aa
echo $bb
それを実行している:
source script.sh a b c d e f g
私が手:
a b c d e f g
a b c d e f g
[email protected]
と$*
の違いは何ですか?
:
[email protected]
bb=$*
echo $aa
echo $bb
それを実行している:
source script.sh a b c d e f g
私が手:
a b c d e f g
a b c d e f g
[email protected]
と$*
の違いは何ですか?
$*
と[email protected]
の間に違いはありませんが、"[email protected]"
と"$*"
の間に違いがあります。
$ cat 1.sh
mkdir "$*"
$ cat 2.sh
mkdir "[email protected]"
$ sh 1.sh a "b c" d
$ ls -l
total 12
-rw-r--r-- 1 igor igor 11 mar 24 10:20 1.sh
-rw-r--r-- 1 igor igor 11 mar 24 10:20 2.sh
drwxr-xr-x 2 igor igor 4096 mar 24 10:21 a b c d
我々は(a
、b c
とd
)スクリプトに3つの引数を与えたが、「$の*」で、彼らはすべてを一つの引数a b c d
にマージされました。
$ sh 2.sh a "b c" d
$ ls -l
total 24
-rw-r--r-- 1 igor igor 11 mar 24 10:20 1.sh
-rw-r--r-- 1 igor igor 11 mar 24 10:20 2.sh
drwxr-xr-x 2 igor igor 4096 mar 24 10:21 a
drwxr-xr-x 2 igor igor 4096 mar 24 10:21 a b c d
drwxr-xr-x 2 igor igor 4096 mar 24 10:21 b c
drwxr-xr-x 2 igor igor 4096 mar 24 10:21 d
は、スクリプトが持っていたとして、"$*"
は常に1つの引数を意味し、"[email protected]"
は、できるだけ多くの引数が含まれていることを、ここで見ることができます。 "$ @"は "個々の引数を引用符で囲む"という特別なトークンです。したがって、"a b c d"
("$*"
)または"a" "b" "c" "d"
([email protected]
または$*
)の代わりに、a "b c" d
は"a" "b c" "d"
になります(またはむしろそのまま)。 Googleは他のすべての重複を見つけることができませんでしたなぜ@mat
:
また、私がテーマにこの美しい読書を勧めますか? – 0x90
@ 0x90:Googleは「句読点」のインデックスを作成しません。このようなことについて[symbolhound](http://symbolhound.com/?q=%24%40+%24%2A)を試してください。 –