scripts script resueltos programas pasar parametros operaciones manejo español ejercicios ejemplos comandos cadenas aritmeticas bash arguments

bash - programas - scripts linux ejercicios resueltos



¿Cómo encuentro la cantidad de argumentos pasados a un script de Bash? (5)

¿Cómo encuentro la cantidad de argumentos pasados ​​a un script de Bash?

Esto es lo que tengo actualmente:

#!/bin/bash i=0 for var in "$@" do i=i+1 done

¿Hay otras (mejores) formas de hacer esto?


A continuación está el más fácil:

gato countvariable.sh

echo "$@" |awk ''{for(i=0;i<=NF;i++); print i-1 }''

Salida:

#./countvariable.sh 1 2 3 4 5 6 6 #./countvariable.sh 1 2 3 4 5 6 apple orange 8



ese valor está contenido en la variable $#


para agregar la referencia original:

Puede obtener la cantidad de argumentos del parámetro especial $# . El valor de 0 significa "sin argumentos". $# es de solo lectura.

Cuando se usa junto con shift para el procesamiento de argumentos, el parámetro especial $# se decrementa cada vez shift se ejecuta el shift Bash Builtin.

ver el Manual de referencia de Bash en la sección 3.4.2 Parámetros especiales :

  • "El shell trata varios parámetros especialmente. Estos parámetros solo pueden referenciarse "

  • y en esta sección para la palabra clave $# "Se expande a la cantidad de parámetros de posición en decimal".


#!/bin/bash echo "The number of arguments is: $#" a=${@} echo "The total length of all arguments is: ${#a}: " count=0 for var in "$@" do echo "The length of argument ''$var'' is: ${#var}" (( count++ )) (( accum += ${#var} )) done echo "The counted number of arguments is: $count" echo "The accumulated length of all arguments is: $accum"