【发布时间】:2019-08-06 03:39:07
【问题描述】:
如果我运行它,它不会打印是。
if [s == [Ss]]
then echo "yes"
fi
但是,如果我写双[],那么就会像
if [[s == [Ss]]]
then echo "yes"
fi
它打印出是
我想知道为什么
【问题讨论】:
-
您不能在
test(与[...]同义)中使用字符类(例如[...])。只有 bash[[ ... ]]允许在其中使用字符类。 -
这一切都取决于命令
[s的结果。尝试直接执行[s(这是一个奇怪的命令名称,但也许您有一个具有该名称的可执行文件),但我希望您的第一个示例给出类似于[s: no such command的错误 -
除了空格错误,
[和[[是两个不同的命令,只有[[支持与=(=)运算符的模式匹配。
标签: string shell if-statement sh contains