shell脚本:比较包含空格值的两个变量

shell脚本:比较包含空格值的两个变量,shell,Shell,我有两个变量 echo $a [5] [2] [3] echo $b [9] [3] [2] 还有很多。我想比较这两个变量 do <1> if they are equal do <2> if they are unequal 如果它们相等,则执行该操作 如果他们不平等,你怎么办 如何操作?您想比较包含空格的$a和$b。使用if-then-else和double-quote变量: if [ "$a" = "$b" ]; then echo '$a equals

我有两个变量

echo $a
[5] [2] [3]
echo $b
[9] [3] [2]
还有很多。我想比较这两个变量

do <1> if they are equal
do <2> if they are unequal
如果它们相等,则执行该操作
如果他们不平等,你怎么办

如何操作?

您想比较包含空格的
$a
$b
。使用
if-then-else
double-quote
变量:

if [ "$a" = "$b" ]; then
   echo '$a equals $b'
else
   echo '$a and $b differ'
fi

比较字符串等价性不是很简单吗?
=
=
在这个上下文中是等价的。你可以用任何一个<代码>=与POSIX兼容,如果您来自另一种语言,
=
是明确的。这取决于外壳;原始Bourne shell未使用
==
<代码>bash执行。我不确定是
ksh
还是
csh
。针对POSIX合规性和shell独立性进行了后期编辑。欢迎来到Stack Overflow。请尽快阅读这一页。你试了什么?你用的是哪种外壳?答案的关键是在变量周围使用双引号-这适用于所有shell。一些shell提供了避免使用引号的机制-
bash
does,例如,使用
[
操作符。