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

  • FRED

    FRED

    1 EKİM 2005
  • RaquelGamesBR

    RaquelGamesB

    20 HAZİRAN 2009
  • stokelycalm

    stokelycalm

    28 Aralık 2010