103
bash
'de, eşit ve çift eşit test operatörleri arasındaki fark nedir?bash dize eşitliği
[[ "a" = "a" ]] && echo equal || echo not-equal
[[ "a" == "a" ]] && echo equal || echo not-equal
[[ "a" = "b" ]] && echo equal || echo not-equal
[[ "a" == "b" ]] && echo equal || echo not-equal
sonuçları:
equal
equal
not-equal
not-equal
* dize * karşılaştırmaları için fark yoktur, ancak '(' sayısal karşılaştırmalar için '(') karakterini kullanamazsınız ('==' in '(())' veya '-eq kullanmalısınız 'in' [] ',' sına veya '[[]]'. http://stackoverflow.com/questions/2600281/what-is-the-difference-between-operator-and ([buradan] cevabım bakın -in-bash/2601583 # 2601583). –
o == bash tanıtıldı, ancak bourne kabuk bunu desteklemediğini belirterek, aynı zamanda değer. bazı sistemlerde, içeri bin/sh aslında bash/fark edeceğiz ve Diğer sistemler, bourne.Bir kabuk betiği birden fazla sistem üzerinde doğru bir şekilde çalıştığında ancak bir tanesinde başarısız olduğunda bu problemin içine girdim. == bourne desteklenmemesi nedeninin başarısız olmasıydı. – Joe
Not, eğer kontrol ederseniz ksh sözdizimi, sen tek = sözdizimi ile amortisman uyarı almak 'uyarı:. satır 3: '=' eskimiş, kullanım '=='' – brianegge