我试图得到一个if语句工作在Bash(使用Ubuntu):
#!/bin/bash
s1="hi"
s2="hi"
if ["$s1" == "$s2"]
then
echo match
fi
我尝试了各种形式的if语句,使用[["$s1" == "$s2"]],带引号和不带引号,使用=,==和-eq,但我仍然得到以下错误:
[hi:命令未找到。
我看了各种各样的网站和教程,并复制了它们,但它不起作用——我做错了什么?
最后,我想说如果$s1包含$s2,我该怎么做呢?
我刚刚算出了空格…:/我怎么说包含?
我试着
if [[ "$s1" == "*$s2*" ]]
但这并没有起作用。
Bash 4+示例。注意:当单词中包含空格时,不使用引号会导致问题。在我看来,总是引用Bash。
下面是一些Bash 4+的例子:
例1,在字符串中检查'yes'(不区分大小写):
if [[ "${str,,}" == *"yes"* ]] ;then
例2,检查字符串中的'yes'(不区分大小写):
if [[ "$(echo "$str" | tr '[:upper:]' '[:lower:]')" == *"yes"* ]] ;then
例3,检查字符串中的'yes'(区分大小写):
if [[ "${str}" == *"yes"* ]] ;then
例4,检查字符串中的'yes'(区分大小写):
if [[ "${str}" =~ "yes" ]] ;then
例5,精确匹配(区分大小写):
if [[ "${str}" == "yes" ]] ;then
例6,精确匹配(不区分大小写):
if [[ "${str,,}" == "yes" ]] ;then
例7,精确匹配:
if [ "$a" = "$b" ] ;then