SORU
31 Ocak 2010, Pazar


Bash, nasıl eğer bir string değer ile başlıyorsa kontrol edebilir miyim?

Eğer bir dize ile başlar olmadığını kontrol etmek istiyorum"""". node001 örneğin düğüm Gibi bir şey

if [ $HOST == user* ]  
  then  
  echo yes  
fi

Nasıl doğru işlemciyi yapabilirim


GÜNCELLEME:

Çok teşekkür ederim! Ben daha fazla ifadeler eğer ANA ya da olup olmadığını kontrol etmek için birleştirmek gerekir "" ya başlar"" . düğüm Kullanıcı1

if [ [[ $HOST == user1 ]] -o [[ $HOST == node* ]] ];  
then  
echo yes 
fi

> > > -bash: [: too many arguments

Nasıl doğru yapmak?

CEVAP
31 Ocak 2010, Pazar


Bu diyor ki: Advanced Bash Scripting Guide üzerinde parçacık

# The == comparison operator behaves differently within a double-brackets
# test than within single brackets.

[[ $a == z* ]]   # True if $a starts with an "z" (wildcard matching).
[[ $a == "z*" ]] # True if $a is equal to z* (literal matching).

Sen de vardıneredeysedoğru; sana ihtiyacım vardıçiftparantez, tek bir parantez değildir.


İkinci sorunuza gelince, bu şekilde yazabilirsiniz:

HOST=user1
if  [[ $HOST == user1 ]] || [[ $HOST == node* ]] ;
then
    echo yes1
fi

HOST=node001
if [[ $HOST == user1 ]] || [[ $HOST == node* ]] ;
then
    echo yes2
fi

Yankı olacak

yes1
yes2

Bash if sözdizimi sabit (IMO) alışmak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Canceriansoul

    Canceriansou

    15 Ocak 2011
  • kev5124

    kev5124

    9 Kasım 2008
  • Music EuroDance 2

    Music EuroDa

    12 Mayıs 2011