bash 字符串中的字符串相等实际上不相等

-1 bash

#!/bin/bash
STR1="David20"
STR2="fbhfthtrh"

if [ "$STR1"="$STR2" ]; then

        echo "Both the strings are equal"
else
        echo "Strings are not equal"
fi
Run Code Online (Sandbox Code Playgroud)

Kam*_*ski 5

[是一个普通命令(虽然是内置命令),结束]只是它的一个参数。"$STR1"="$STR2"在扩展变量并删除引号之后也是如此。重点是"$STR1"="$STR2"成为一个参数,并且之前只有一个参数]并且它是一个非空字符串,结果为真(退出状态0)。

你要

[ "$STR1" = "$STR2" ]
Run Code Online (Sandbox Code Playgroud)

现在前面有三个参数],中间的一个 ( =) 告诉命令您要比较字符串。