This question already has answers here:
How to compare strings in Bash

(10个答案)


2年前关闭。




我正在尝试让if语句在Bash中工作(使用Ubuntu):
#!/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" ]]

对于字符串不等于比较,请使用:
if [[ "$s1" != "$s2" ]]

对于a包含b,请使用:
if [[ $s1 == *"$s2"* ]]

(并确保在符号之间添加空格):

坏:
if [["$s1" == "$s2"]]

好:
if [[ "$s1" == "$s2" ]]

10-06 09:18
查看更多