Uno=1
Dos=2
# aquí la salida es S
if (( Uno < Dos )); then echo S; else echo N; fi
# aquí la salida es N
if [[ Uno < Dos ]]; then echo S; else echo N; fi
Uno=1
Dos=2
# aquí la salida es S
if (( Uno < Dos )); then echo S; else echo N; fi
# aquí la salida es N
if [[ Uno < Dos ]]; then echo S; else echo N; fi
(( expresión ))
允许您计算算术表达式。如果表达式的值为非零,则返回状态为0;否则,返回状态为 1。[[ expresión ]]
是一种 bashism(类似于 Bash 的东西,虽然是[
通用的——你可以阅读和之间的区别)[
[[
并且用于评估表达式,这可能比算术复杂得多。因此,当您说 时
(( uno < dos ))
,解释器会查看$uno
y的值$dos
并评估哪个更大。但是,当您说 时
[[ uno < dos ]]
,解释器会按字典顺序计算字符串“one”和“two”,并确定“one”不大于“two”。要评估变量的内容
[[
,您必须使用$
以扩展其值:where
-lt
表示“低于”,即小于。它们总共是:'-eq'、'-ne'、'-lt'、'-le'、'-gt' 和 '-ge'。例如:
当您使用方括号时,您必须使用不同的语法,即:
括号允许您输入控制台命令。