GNU/Linux >> Tutoriales Linux >  >> Linux

Verifique que haya al menos dos argumentos dados en un script bash

Utilice el $# variable especial. Su valor es el número de argumentos. Entonces, si tiene un script que contiene solo:

echo $#

y ejecutarlo así:

thatscript foo bar baz quux

Imprimirá 4.

En su caso, es posible que desee hacer algo como:

if [ $# -lt 2 ]; then
    # TODO: print usage
    exit 1
fi

Siguiendo el requisito de la pregunta de que los argumentos deben contener "al menos 2 cosas", creo que podría ser más preciso verificar:

if (( $# < 2 )); then
    # TODO: print usage
    exit 1
fi

Usando la expansión aritmética (( )) evitará que esto llegue a exit 1 para cualquier valor que no sea igual a 2.

Si usa if [ $# -ne 2 ]; activará el condicional para cualquier número de argumentos que no sean 2.

Editar:parece que la respuesta aceptada se actualizó para incluir un ejemplo equivalente (¿y más portátil?) de esto.


Linux
  1. ¿Cómo puedo escribir un script bash de Linux que me diga qué computadoras están ENCENDIDAS en mi LAN?

  2. ¿Cómo verificar el acceso a Internet usando el script bash en Linux?

  3. ¿Cómo verificar si existe un archivo en un directorio específico en un script bash?

  4. Ejecute el comando bash en la canalización de jenkins

  5. Comprender cómo se envían las entradas a las tuberías en Bash

¿Pasar argumentos de línea de comando a Bash Script?

Compruebe cuánto tarda en ejecutarse un script de Bash con el comando de tiempo

Bash Beginner Series #3:Pasando Argumentos a Bash Scripts

¿Hay alguna forma de verificar si hay enlaces simbólicos que apuntan a un directorio?

¿Cómo verifico la sintaxis de un script Bash sin ejecutarlo?

¿Hay alguna forma de mostrar la notificación del script bash en Ubuntu?