0
$*
と[email protected]
の違いを表示するシェルスクリプトの例を教えてもらえますか?
私のスクリプトはですが、の違いは分かりません。誰かが良い例を挙げることができますか?
$ cat internalVar.sh
#!/bin/bash
# internalVar.sh var1 var2
echo "\$? = " $?
export IFS="_"
echo "\[email protected] = " [email protected] " == several parameters?"
j=1
for i in [email protected]
do
echo "var $j = $i"
j=$((j+1))
done
echo "\$* = " $* " == a single string"
j=1
for i in $*
do
echo "var $j = $i"
j=$((j+1))
done
echo "\$# = " $#
echo "\$0 = " $0
echo "\$$ = " $$
$ export IFS="c"
[$ ./internalVar.sh par1 "par meter 2" par3
$? = 0
[email protected] = par1 par meter 2 par3 == several parameters?
var 1 = par1
var 2 = par meter 2
var 3 = par3
$* = par1 par meter 2 par3 == a single string
var 1 = par1
var 2 = par meter 2
var 3 = par3
$# = 3
$0 = ./internalVar.sh
$$ = 4638
適切な引用符を使用していないため、あなたのスクリプトは違いを知ることができません。引用符を正しく付けないと、違いはありません(また、バグがたくさんあります)。 –
@CharlesDuffy Duh、もちろん、重複があります。私は "var = val"について質問していない、それは新しいものでなければならないと思ったに違いない) –
ありがとう、私はそれを得た。 –