7 EYLÜL 2012, Cuma
Bash komut satırı argüman olarak $@ erişme vs $*
Orada tüm kabuk ve bash programcılar Merhaba.
Bu YÜZDEN soru ve bash öğreticiler birçok iki şekilde bash komut dosyaları komut satırı argüman olarak erişebilirsiniz görüyorum:
$ ~ >cat testargs.sh
#!/bin/bash
echo "you passed me" $*
echo "you passed me" $@
Sonuçları:
$ ~> bash testargs.sh arg1 arg2
you passed me arg1 arg2
you passed me arg1 arg2
$*
$@
arasındaki fark nedir?
Ne zaman bir eski kullanmalı ve ne zaman ikinci kullanalım mı?
CEVAP
7 EYLÜL 2012, Cuma
Fark özel parametreler alıntı görüntüleniyor. Beni farklılıklar göstermektedir
$ set -- "arg 1" "arg 2" "arg 3"
$ for word in $*; do echo "$word"; done
arg
1
arg
2
arg
3
$ for word in $@; do echo "$word"; done
arg
1
arg
2
arg
3
$ for word in "$*"; do echo "$word"; done
arg 1 arg 2 arg 3
$ for word in "$@"; do echo "$word"; done
arg 1
arg 2
arg 3
alıntı önemine dair bir örnek daha: "arg eğer alıntı kelime $için başarısız olursam" ve numarasını, ama: . 2 arasında boşluk vardır unutmayın
$ for word in "$@"; do echo $word; done
arg 1
arg 2
arg 3
ve bash, "$@"
"" üzerinde yineleme listesi için: . varsayılan
$ for word; do echo "$word"; done
arg 1
arg 2
arg 3
Bunu Paylaş:
Nasıl komut satırı argüman bash bir ko...
Nasıl bash komut satırı argümanları ay...
Nasıl bir BASH değişken bir komut çıkt...
Bash kabuk komut getopts uzun kullanar...
Nasıl bir metin dosyasının ilk satırı ...