关于linux:bash脚本中的参数数量

Number of arguments in bash script

我想测试传递给Linuxshell脚本的参数的数量。如果参数的数目不是24,则应该打印一些内容。不幸的是,它不起作用。有人能解释我做错了什么吗?

1
2
3
4
5
#!/bin/bash
if [[ $# -ne 2 ]] || [[ $# -ne 4 ]];
then
    echo"here";
fi


您应该用逻辑AND替换逻辑OR,这样:

1
2
3
4
5
#!/bin/bash

if [[ $# -ne 2 && $# -ne 4 ]]; then
   echo"here"
fi

算术形式:

1
2
3
4
5
#!/bin/bash

if (($# != 2 && $# != 4)); then
   echo"here"
fi

如你所见,不需要使用2个[[ ]]


逻辑。

1
2
3
if [[ $# -ne 2 ]] && [[ $# -ne 4 ]]; then
  echo"here"
fi