使用if条件时,Bash脚本会产生错误

时间:2018-01-30 23:04:38

标签: linux bash

我在bash脚本中遇到if的问题。我写了以下if条件,但它产生了一个错误:

if [[ "$capacity" != *10 && "$capacity" != *20  ]] || [[ "$capacity" != *80 && "$capacity" != *100 ]]; then

简单地说,我想比较(两个值不等于)|| (两个值不等于)条件使用或运算符

1 个答案:

答案 0 :(得分:1)

我拿走了你的专栏并添加了足够的额外行以使其成为Minimal, Complete, and Verifiable example

#!/bin/bash
capacity=55

if [[ "$capacity" != *10 && "$capacity" != *20  ]] || [[ "$capacity" != *80 && "$capacity" != *100 ]]; then
  echo "match"
fi

然后我就这样跑了:

$ chmod +x ./myscript
$ ./myscript
match

它写了“匹配”,正如我预期的那样。

请你做同样的事吗?

  1. 添加足够的行,以便我可以在我的机器上运行代码
  2. 显示如何运行它以及它输出的内容
  3. 解释为什么这与您的预期不同