【发布时间】:2017-07-25 12:28:07
【问题描述】:
我最近学习了如何在 shell 中编程。
我不明白为什么这两个语句会产生不同的输出。看来如果没有空格,test 把10==11 当作一个字符串,总是返回true。
$test 10==11 && echo yes || echo no
$yes
$test 10 == 11 && echo yes || echo no
$no
【问题讨论】:
-
输入
help test查看帮助页面 -
你说得对;如果没有空格,则
test命令没有多个参数要解析;它是一个单一的字符串,它的计算结果为真,因为它不为空。 -
如果它可以帮助你记住使用空格,请使用 -eq 而不是 == (写 10-eq11 而不是对自己说“我想我应该在里面放一些空格”更难)
标签: linux shell command-line