首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用sh shell比较字符串

使用sh shell比较字符串
EN

Stack Overflow用户
提问于 2012-06-01 19:20:42
回答 7查看 507.6K关注 0票数 222

我使用的是SH shell,我试图将一个字符串与一个变量的值进行比较,但if条件总是执行为真。为什么?

下面是一些代码:

代码语言:javascript
复制
Sourcesystem="ABC"

if [ "$Sourcesystem" -eq 'XYZ' ]; then 
    echo "Sourcesystem Matched" 
else
    echo "Sourcesystem is NOT Matched $Sourcesystem"  
fi;

echo Sourcesystem Value is  $Sourcesystem ;

即使这样也不起作用:

代码语言:javascript
复制
Sourcesystem="ABC"

if [ 'XYZ' -eq "$Sourcesystem" ]; then 
    echo "Sourcesystem Matched" 
else
    echo "Sourcesystem is NOT Matched $Sourcesystem"  
fi;

echo Sourcesystem Value is  $Sourcesystem ;

其次,我们可以将其与NULL或空字符串进行匹配吗?

EN

回答 7

Stack Overflow用户

发布于 2012-06-01 19:24:24

应该使用=运算符进行字符串比较:

代码语言:javascript
复制
Sourcesystem="ABC"

if [ "$Sourcesystem" = "XYZ" ]; then 
    echo "Sourcesystem Matched" 
else
    echo "Sourcesystem is NOT Matched $Sourcesystem"  
fi;

man test说你使用-z来匹配空字符串。

票数 323
EN

Stack Overflow用户

发布于 2012-06-01 19:24:20

-eq用于比较整数。请改用=

票数 88
EN

Stack Overflow用户

发布于 2017-05-02 22:37:54

eq用于比较整数,使用相等的'=‘,例如:

代码语言:javascript
复制
if [ 'AAA' = 'ABC' ];
then 
    echo "the same" 
else 
    echo "not the same"
fi

祝好运

票数 43
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10849297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档