SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • movies95

    movies95

    27 Kasım 2006
  • MultiPlayStationMan

    MultiPlaySta

    17 Aralık 2009
  • RD

    RD

    19 NİSAN 2006