首页 > 解决方案 > 为什么我在包含 && 和第二个字符串评估时收到错误

问题描述

使用 Bash 4.4 版

工作 bash 代码:

# Hello World Program in Bash Shell

MY_NAME="John"
NAME_1="Kate"
if [ ${MY_NAME} == "John" ]; then
    echo "John and Kate are home from vacation"
fi

失败的 Bash 代码:

错误:

# Hello World Program in Bash Shell

    MY_NAME="John"
    NAME_1="Kate"
    if [ ${NAME_1} == "Kate" && ${MY_NAME} == "John" ]; then
        echo "John and Kate are home from vacation"
    fi

main.sh:第 5 行:[:缺少 `]'

标签: bash

解决方案


[里面不支持&&-a改用。

[[支持&&

所以你可以&&-a, 或用[and]替换[[and]]

例如:

[ 1 -eq 1 -a 2 -eq 2 ]

[[ 1 -eq 1 && 2 -eq 2 ]]

推荐阅读