我遗漏了关于bash的if构造/运算符或字符串比较的基本内容.
请考虑以下脚本:
请考虑以下脚本:
#!/bin/bash baseSystem="testdir1" testme="NA" if [ "$baseSystem"=="$testme" ]; then echo "In error case" fi if [ "$baseSystem"!="$testme" ]; then echo "In error case" fi
我明白了:
In error case In error case
因此它进入每个案例,即使它们应该是互相排斥的.
任何帮助表示赞赏.
bash碰巧对空间有点特别.
在运算符周围添加空格:
if [ "$baseSystem" == "$testme" ]; then ... if [ "$baseSystem" != "$testme" ]; then
以下不相同:
[ "$a"="$b" ] [ "$a" = "$b" ]
你的第一次测试基本上与说“[testdir1 == NA”]相同;那将永远是真的.
原文地址:https://www.jb51.cc/bash/387064.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。