Bash if语句行为

前端之家收集整理的这篇文章主要介绍了Bash if语句行为前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_0@ 我遗漏了关于bash的if构造/运算符或字符串比较的基本内容.
请考虑以下脚本:
  1. #!/bin/bash
  2. baseSystem="testdir1"
  3. testme="NA"
  4. if [ "$baseSystem"=="$testme" ]; then
  5. echo "In error case"
  6. fi
  7. if [ "$baseSystem"!="$testme" ]; then
  8. echo "In error case"
  9. fi

我明白了:

  1. In error case
  2. In error case

因此它进入每个案例,即使它们应该是互相排斥的.
任何帮助表示赞赏.

bash碰巧对空间有点特别.

在运算符周围添加空格:

  1. if [ "$baseSystem" == "$testme" ]; then
  2.  
  3. ...
  4.  
  5. if [ "$baseSystem" != "$testme" ]; then

以下不相同:

  1. [ "$a"="$b" ]
  2. [ "$a" = "$b" ]

你的第一次测试基本上与说“[testdir1 == NA”]相同;那将永远是真的.

猜你在找的Bash相关文章