如何在Bash中的'if'语句中比较两个字符串变量?

我试图在Bash(使用Ubuntu)中让一个if语句工作。

#!/bin/bash

s1="hi"
s2="hi"

if ["$s1" == "$s2"]
then
  echo match
fi

我尝试了各种形式的if语句,使用[["$s1" =="$s2"]],有引号和无引号,使用==eq,但我仍然得到以下错误。

[嗨:未找到命令

我看了各种网站和教程,并复制了那些内容,但没有效果--我做错了什么?

最终,我想说如果$s1包含$s2,那么我怎样才能做到这一点?

我刚刚解决了空格的问题... :/ 我怎么说包含呢?

我试过

if [[ "$s1" == "*$s2*" ]]

但它没有发挥作用。

你需要空间。

if [ "$s1" == "$s2" ]
评论(4)

我建议。

#!/bin/bash

s1="hi"
s2="hi"

if [ $s1 = $s2 ]
then
  echo match
fi

不加双引号,只加一个等号。

评论(3)

我现在没有机会接触到linux盒子,但[实际上是一个程序(也是bash的一个内置程序),所以我认为你必须在[和第一个参数之间加一个空格。

还要注意的是,字符串平等运算符似乎是一个单一的=。

评论(1)