比较bash中的两个字符串变量



这段代码一直重复显示&;they are equal&;为什么?

#!/bin/bash
foo="hello"
bar="h"
if [[ "$foo"=="$bar" ]]; then
echo "they are equal"
else
echo "they are not equal"
fi

条件根据其中的元素数量工作,这个特殊的问题由手册页的这一部分(转述)讨论:

string:如果字符串长度非零,则为True。

string1 == string2:如果两个字符串相等,则为True。

换句话说,比较需要三个元素,这意味着您需要在==的两侧各有一个空格。

如果没有,它只是条件的单元素变体,当字符串非空时为真,如hello==h几乎肯定是。

最新更新