bash - 如何检查bash脚本中参数的长度

标签 bash arguments

如何检查 bash 脚本中参数的长度?
假设参数的长度不应超过 1。

args=("$@")
if [ ${args[0] -gt 1]; then
    echo "Length of arg. 1 must be 1"
fi
然而,这不能正常工作,因为它会检查 args[0] > 1 而不是 len(args[0] > 1):
./sth.sh 2 1 1
“参数的长度。1 必须是 1”
LENGTH 是 1,但它仍然回响。
我也试过这个:
args=("$@")
if [ ${#args[0] -gt 1]; then
    echo "Length of arg. 1 must be 1"
fi
但是,它没有回显任何内容。

最佳答案

你可以使用这个:

if [ "$#" -ne 1 ]; then
    echo "Illegal number of parameters"
fi

Or

if test "$#" -ne 1; then
    echo "Illegal number of parameters"
fi

后来检查这样每个参数的长度:
for var in "$@"
do
   check=${#var}    
    if [ $check -ne 1 ]; then echo "error" ; exit
    fi
done

关于bash - 如何检查bash脚本中参数的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29344250/

相关文章:

bash - 多词别名 (Ubuntu)

linux - 仅当包含它的行还包含使用 Bash 在另一个文件中找到的数字时,如何替换文件中的字符串?

bash - 错误 : more than one row returned by a subquery used as an expression

jQuery:如何在函数内使用函数参数作为函数名称?

Python:将可变(?)对象传递给方法

bash - 根据 Bash 中的输入生成逗号分隔的数字序列

bash - 将输入字段作为数组循环

Java数组声明语法差异?

function - Kotlin 使用数据类发送函数参数

c++ - 如果方法中的变量是临时的。那么为什么我们可以访问它们 C++ 呢?