Bu iki operatörün hemen hemen aynı olduğu anlaşılıyor - bir fark var mı? Ne zaman =
ve ==
ne zaman kullanmalıyım?Bash operatöründe "=" ve "==" arasındaki fark nedir?
cevap
Sen ((...))
sayısal karşılaştırmalarda ==
kullanmalısınız:
$ if ((3 == 3)); then echo "yes"; fi
yes
$ if ((3 = 3)); then echo "yes"; fi
bash: ((: 3 = 3 : attempted assignment to non-variable (error token is "= 3 ")
Sen [[ ... ]]
veya [ ... ]
veya test
dize karşılaştırmaları için birini kullanabilirsiniz:
$ if [[ 3 == 3 ]]; then echo "yes"; fi
yes
$ if [[ 3 = 3 ]]; then echo "yes"; fi
yes
$ if [ 3 == 3 ]; then echo "yes"; fi
yes
$ if [ 3 = 3 ]; then echo "yes"; fi
yes
$ if test 3 == 3; then echo "yes"; fi
yes
$ if test 3 = 3; then echo "yes"; fi
yes
"Dize karşılaştırmaları?" diyorsun?
$ if [[ 10 < 2 ]]; then echo "yes"; fi # string comparison
yes
$ if ((10 < 2)); then echo "yes"; else echo "no"; fi # numeric comparison
no
$ if [[ 10 -lt 2 ]]; then echo "yes"; else echo "no"; fi # numeric comparison
no
POSIX ile ilgili ince bir fark var. Bash reference alıntı: dizeleri eşitse
string1 == string2
doğrudur. Sık POSIX uyumluluğu için==
yerine=
kullanılabilir.
Yine de fark yok mu? Sadece bir taşınabilirlik sorunu mu? –
@ T.E.D .: Hayır, cevabımı gör. –
- 1. Bash kabuğu ve Bash terminali arasındaki fark?
- 2. Git Bash ve Windows için GitHub kabuk arasındaki fark nedir?
- 3. Python'da {} ve [] arasındaki fark nedir?
- 4. UNIX'teki $ @ ve $ * arasındaki fark nedir?
- 5. $ arasındaki fark nedir? ve PowerShell
- 6. Fark() arasındaki fark nedir mustache.js
- 7. arasındaki fark nedir?
- 8. Java arasındaki fark nedir
- 9. arasındaki fark nedir?
- 10. arasındaki fark nedir?
- 11. arasındaki fark nedir [[test1 && dnm2]] vs [[test1]] && [[dnm2]], aşağıdaki iki bash değerlendirmelerde fark, varsa, nedir
- 12. app.doScript ve $ .evalFile arasındaki fark nedir?
- 13. gVim ve gVim arasındaki fark nedir?
- 14. isAlpha ve isLetter arasındaki fark nedir?
- 15. Control.Enter ve Control.GotFocus olayları arasındaki fark nedir?
- 16. .got ve .got.plt bölümü arasındaki fark nedir?
- 17. AutomationProperties.AutomationID ve AutomationProperties.Name arasındaki fark nedir?
- 18. Android'de getDir ve getFilesDir arasındaki fark nedir?
- 19. R içinde `=` ve `<-` arasındaki fark nedir?
- 20. uint ve System.UInt32 arasındaki fark nedir?
- 21. PropertyChangeListener ve VetoableChangeListener arasındaki fark nedir?
- 22. XSS'de IDREF ve IDREFS arasındaki fark nedir?
- 23. Cacerts ve keystore arasındaki fark nedir?
- 24. GPLv2 ve GPLv3 arasındaki fark nedir?
- 25. VarIsEmpty ve VarIsEmptyParam işlevleri arasındaki fark nedir
- 26. ActiveSupport'ta mattr_accessor ve cattr_accessor arasındaki fark nedir?
- 27. Hashtable ve Dictionary arasındaki fark nedir?
- 28. RoutedCommand ve RoutedUICommand arasındaki fark nedir?
- 29. MySQL'deki boolean ve bool arasındaki fark nedir?
- 30. Task.Factory.FromAsync ve BeginX/EndX arasındaki fark nedir?
'' = '' ile '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'ile kullanmamalısınız '==', POSIX belirtiminin bir parçası değildir ve tüm kabuklarla çalışmayacaktır (özellikle çizgi, bunu algılamaz). – chepner
@chepner: Bu doğru, ama soru özellikle Bash hakkında. –