bash if 语句遇到麻烦 [Error==Error]: not found

bash if 语句遇到麻烦 [Error==Error]: not found

每次我运行脚本时,以下 if 语句都会给出错误;

script.sh: [Error==Error]: not found

或者

script.sh: [Error==-2]: not found

if ["$P1"=="$P2"];then
            echo $name
fi

我尝试过其他版本

    if ["$P1"=="$P2"]
            then
            echo $name
    fi

    if [[ "$P1" == "$P2" ]]
            then
            echo $name
fi

P1="Error"
P2="$(sed -n '1p' somefile.txt)"

somefile.txt可能包含数字或字符串

答案1

空格很重要。使用:

if [ "$P1" = "$P2" ]

什么地方出了错

当 shell 看到 时["$P1"=="$P2"],它将其解释为单个单词并查找与该单词匹配的命令。由于不存在这样的命令,因此您会收到not found错误消息。

相关内容