OnWorks Linux ve Windows Çevrimiçi İş İstasyonları

Logo

İş İstasyonları için Çevrimiçi Ücretsiz Barındırma

<Önceki | İçerik | Sonraki>

Testin Daha Modern Bir Versiyonu

son sürümleri darbe için geliştirilmiş bir değiştirme işlevi gören bir bileşik komut içerir. test. Aşağıdaki sözdizimini kullanır:

[[ ifade ]]

nerede, gibi test, ifade doğru veya yanlış sonuç olarak değerlendirilen bir ifadedir. NS [[]] komut çok benzer test (tüm ifadelerini destekler), ancak


önemli bir yeni dize ifadesi ekler:

string1 =~ regex

hangisi doğruysa döner string1 genişletilmiş normal ifadeyle eşleştirilir regex. Bu, veri doğrulama gibi görevleri gerçekleştirmek için birçok olanak sunar. Tamsayı ifadelerine ilişkin önceki örneğimizde, sabit INT bir tamsayı dışında herhangi bir şey içeriyordu. Komut dosyasının, sabitin bir tamsayı içerdiğini doğrulamak için bir yola ihtiyacı var. kullanma [[]] ile =~ string ifade operatörü, betiği şu şekilde geliştirebiliriz:



#! / Bin / bash


# test-integer2: bir tamsayının değerini değerlendirin.


INT=-5


if [[ "$INT" =~ ^-?[0-9]+$ ]]; sonra

eğer [ $INT -eq 0 ]; sonra yankı "INT sıfırdır."

başka

eğer [ $INT -lt 0 ]; sonra echo "INT negatiftir."

başka

echo "INT pozitif."

fi

if [ $((INT % 2)) -eq 0 ]; sonra echo "INT çifttir."

başka

echo "INT garip."

fi

fi

başka

echo "INT bir tam sayı değil." >&2 çıkış 1

fi

#! / Bin / bash


# test-integer2: bir tamsayının değerini değerlendirin.


INT=-5


if [[ "$INT" =~ ^-?[0-9]+$ ]]; sonra

eğer [ $INT -eq 0 ]; sonra yankı "INT sıfırdır."

başka

eğer [ $INT -lt 0 ]; sonra echo "INT negatiftir."

başka

echo "INT pozitif."

fi

if [ $((INT % 2)) -eq 0 ]; sonra echo "INT çifttir."

başka

echo "INT garip."

fi

fi

başka

echo "INT bir tam sayı değil." >&2 çıkış 1

fi


Normal ifadeyi uygulayarak değerini sınırlayabiliriz. INT yalnızca isteğe bağlı bir eksi işaretiyle başlayan ve ardından bir veya daha fazla sayı gelen dizelere. Bu ifade aynı zamanda boş değerler olasılığını da ortadan kaldırır.

Eklenen bir diğer özellik [[]] olduğu == operatör, yol adı genişletmesinin yaptığı gibi desen eşleştirmeyi destekler. Örneğin:



[ben@linuxbox ~]$ DOSYA=foo.bar

[ben@linuxbox ~]$ DOSYA=foo.bar

Testin Daha Modern Bir Versiyonu


[ben@linuxbox ~]$ if [[ $DOSYA == foo.* ]]; sonra

> echo "$FILE 'foo.*' kalıbıyla eşleşiyor"

> fi

foo.bar 'foo.*' kalıbıyla eşleşir

[ben@linuxbox ~]$ if [[ $DOSYA == foo.* ]]; sonra

> echo "$FILE 'foo.*' kalıbıyla eşleşiyor"

> fi

foo.bar 'foo.*' kalıbıyla eşleşir


Bu yapar [[]] dosya ve yol adlarını değerlendirmek için kullanışlıdır.


OnWorks'te En İyi OS Bulut Bilişimi: