bash - 为什么 if 和 else 都被执行?

标签 bash shell ubuntu

<分区>

我的代码是:

if [ "$server" == "a" ]; then
        echo "apache"
fi

if [ "$server" ==  "t"   ]
then
        echo "tomcat"
else
        echo "Entered"
fi

$server 的值为t。我希望值 tomcat 打印在控制台上。但是 Entered 也被打印出来了!

我对此感到困惑。为什么ifelse语句都被执行了?

最佳答案

else 分支只有在前面的 if 语句计算结果为 false 时才会执行。据我所知,该规则没有任何异常(exception)。导致问题的 bash 文件中可能有其他可疑的事情。

确保 bash 正在执行脚本。 #!/bin/bash 应该在第一行。

关于bash - 为什么 if 和 else 都被执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12986561/

相关文章:

python - 运行 python 函数时如何使 Control M 作业失败

bash - 在 bash 脚本中使用 ksh shebang

linux - 在 Linux shell 上使用 groovy 执行长命令?

unix - 运行脚本时找不到命令错误消息

linux - 我该如何为usermod制作一个shell脚本

ubuntu - 日志解析 stackdriver 中来自 textPayload 的警报?

php - 在 PHP 中使用 URL 的最后一部分作为查询字符串,而不是目录路径

node.js - 我想为nodejs的url做cron作业

Bash 如何获取字符串的倒数第二个字符?

linux - 如何在 Bash 中使用 '*' 通配符检查参数是否相等?