Yanıtlar:
$@
İşlevi çağrılırken tüm parametrelere değişken genişlediğinde bu yüzden, kullanılan
function foo()
{
echo "$@"
}
foo 1 2 3
görüntülenir 1 2 3
. Bir işlevin içinde kullanılmazsa, komut dosyasını çağırırken kullanılan tüm parametreleri belirtir. Daha fazla bilgi için bash el kitabı sayfasına bakın .
$ @, bash içindeki iki "konumsal parametre" ifadesinden biridir, diğeri $ *.
Hem $ @ hem de $ *, bir işleve veya komut dosyasına geçirilen tüm parametreleri temsil eden dahili bash değişkenleridir; bir anahtar farkla $ @, her parametreyi ayrı bir tırnak içine alınmış dize, $ * ise tüm parametreleri tek bir dize olarak içerir. Bu fark aşağıdaki kodda gösterilmiştir:
foo() {
while [ "$1" != "" ]; do
echo $1
shift
done
}
dollar_at () {
foo "$@"
}
dollar_star () {
foo "$*"
}
echo "Using \$@"
dollar_at a b c
echo "Using \$*"
dollar_star a b c
Çıktı:
Using $@
a
b
c
Using $*
a b c
$ * İle çağrıldığında, foo () öğesine tam olarak bir argüman iletilir, ancak $ @ ile foo () öğesine üç argüman iletilir.
Daha fazla bilgi: http://tldp.org/LDP/abs/html/internalvariables.html#APPREF
$1
,$2
vb$@
.