这段代码一直重复显示&;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
几乎肯定是。