【问题标题】:Number of arguments in bash scriptbash 脚本中的参数数量
【发布时间】:2015-02-04 18:05:53
【问题描述】:

我想测试传递给 Linux shell 脚本的参数数量。如果参数的数量不是24,它应该打印一些东西。不幸的是,它不起作用。谁能解释我做错了什么?

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

【问题讨论】:

标签: linux bash shell command-line-arguments


【解决方案1】:

你应该用逻辑AND替换逻辑OR,所以:

#!/bin/bash

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

算术形式:

#!/bin/bash

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

如您所见,无需使用 2 [[ ]]

【讨论】:

    【解决方案2】:

    逻辑。

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

    【讨论】:

    • 它是-ne(不等于)
    • 另外,OP贴的代码也有一个问题:一个值总是不是2或者不是4
    猜你喜欢
    • 1970-01-01
    • 2013-08-02
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 2011-11-14
    • 2013-09-05
    相关资源
    最近更新 更多