bash - 为什么我在包含 && 和第二个字符串评估时收到错误
问题描述
使用 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 行:[:缺少 `]'
解决方案
[
里面不支持&&
,-a
改用。
[[
支持&&
所以你可以&&
用-a
, 或用[
and]
替换[[
and]]
例如:
[ 1 -eq 1 -a 2 -eq 2 ]
[[ 1 -eq 1 && 2 -eq 2 ]]
推荐阅读
- cmusphinx - CMU Sphinx 可以在一个句子中支持多种语言吗?
- xpath - 使用 Xpath 获取 YouTube 视频的持续时间
- java - freemarker 检查嵌套列表 attr 是否存在
- python-3.x - 重采样数据帧的 2D 插值
- javascript - ASP.Net MVC Ajax.BeginForm 文件上传响应问题
- python - haar 级联未检测到
- javascript - 脚本多次运行
- c++ - 在 Visual Studio 中使用 atof 时很奇怪
- php - PHP 使用 $_POST 将用户输入传递给函数
- apache-kafka - 当存在副本滞后时,Kafka副本如何成为领导者