我之前写 shell script 时在这个地方出过错, 一直没有弄明白.

有没有这样的限制:
-eq: 适用于或偏向于 "数字相等"
= : 选用于或偏向于 "字符串相等"

Bash shell 中 "-eq" 与 "=" 等价吗?


慕沐林林
浏览 143回答 2
2回答

Helenr

RTFM$ man test       STRING1 = STRING2              the strings are equal        STRING1 != STRING2              the strings are not equal        INTEGER1 -eq INTEGER2               INTEGER1 is equal to INTEGER2

慕尼黑5688855

准确来说是适用对象不同:-eq 和 = 都可以用来条件测试进行判断两个操作对象是否相同,但是有如下区别:-eq 适用于整数数字,不能进行字符串的条件测试= 既适用于数字,又适用于字符串。我做了下测试:$ [ 1 -eq 1 ] && echo "ok"ok $ [ 1 = 1 ] && echo "ok"ok $ [ "a" -eq "a" ] && echo "ok"sh: [: a: 需要整数表达式 $ [ "a" = "a" ] && echo "ok"ok
打开App,查看更多内容
随时随地看视频慕课网APP