bash – ¿Cómo comprobar si no se proporcionan parámetros a un comando?

Pregunta:

¿Cómo se comprueba si $* está vacío? En otras palabras, ¿cómo comprobar si no se proporcionaron argumentos a un comando?

Respuesta:

Para verificar si no se proporcionaron argumentos al comando, verifique el valor de la variable $# luego,

if [ $# -eq 0 ]; then
    echo "No arguments provided"
    exit 1
fi

Si desea usar $* ( no es preferible ), entonces,

if [ "$*" == "" ]; then
    echo "No arguments provided"
    exit 1
fi

Alguna explicación:

El segundo enfoque no es preferible porque en el parámetro posicional, la expansión * expande a los parámetros posicionales, comenzando desde uno. Cuando la expansión ocurre entre comillas dobles, se expande a una sola palabra con el valor de cada parámetro separado por el primer carácter de la variable especial IFS. Eso significa que se construye una cuerda. Así que hay gastos generales adicionales.

Por otro lado, # expande al número de parámetros posicionales.

Ejemplo:

$ command param1 param2

Aquí,

El valor de $# es 2 y el valor de $* es la cadena "param1 param2" (sin comillas), si IFS no está establecido. Porque si IFS no está configurado, los parámetros están separados por espacios

Para más detalles man bash y lea el tema llamado Parámetros especiales

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım