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

Rok*_*nar 3 bash arguments

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

args=("$@")
if [ ${args[0] -gt 1]; then
    echo "Length of arg. 1 must be 1"
fi
Run Code Online (Sandbox Code Playgroud)

然而,这不能正常工作,因为它会检查 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
Run Code Online (Sandbox Code Playgroud)

但是,它没有回显任何内容。

Man*_*ari 5

你可以使用这个:

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

Or

if test "$#" -ne 1; then
    echo "Illegal number of parameters"
fi
Run Code Online (Sandbox Code Playgroud)

稍后检查每个参数的长度,如下所示:

for var in "$@"
do
   check=${#var}    
    if [ $check -ne 1 ]; then echo "error" ; exit
    fi
done
Run Code Online (Sandbox Code Playgroud)