相关疑难解决方法(0)

如何比较Bash中的字符串

如何将变量与字符串进行比较(如果匹配则执行某些操作)?

string bash

897
推荐指数
9
解决办法
114万
查看次数

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

我正在尝试使用Bash(使用Ubuntu)获得一个if声明:

#!/bin/bash

s1="hi"
s2="hi"

if ["$s1" == "$s2"]
then
  echo match
fi
Run Code Online (Sandbox Code Playgroud)

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

[hi:命令未找到

我查看了各种网站和教程并复制了这些内容,但是它不起作用 - 我做错了什么?

最后,我想说是否$s1包含$s2,所以我该怎么做?

我刚刚解决了空位...:/我怎么说包含?

我试过了

if [[ "$s1" == "*$s2*" ]]
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

bash scripting if-statement

572
推荐指数
11
解决办法
102万
查看次数

bash中的字符串比较.[[: 未找到

我试图比较bash中的字符串.我已经找到了关于如何在stackoverflow上执行此操作的答案.在我尝试的脚本中,我使用的是Adam在提到的问题中提交的代码:

#!/bin/bash
string='My string';

if [[ "$string" == *My* ]]
then
  echo "It's there!";
fi

needle='y s'
if [[ "$string" == *"$needle"* ]]; then
  echo "haystack '$string' contains needle '$needle'"
fi
Run Code Online (Sandbox Code Playgroud)

我也尝试过你可以在第二篇文章中找到的ubuntuforums方法

if [[ $var =~ regexp ]]; then
  #do something
fi
Run Code Online (Sandbox Code Playgroud)

在这两种情况下我都收到错误:

[[: not found
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

bash shell string-comparison ubuntu-11.04

138
推荐指数
6
解决办法
13万
查看次数