GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo pasar un argumento de línea de comando a un script de Shell?

Sé que los scripts de shell solo ejecutan comandos como si se ejecutaran en el símbolo del sistema. Me gustaría poder ejecutar scripts de shell como si fueran funciones… Es decir, tomar un valor de entrada o una cadena en el script. ¿Cómo me acerco a hacer esto?

Respuesta aceptada:

El comando de shell y cualquier argumento de ese comando aparecen como numerados variables de shell:$0 tiene el valor de cadena del comando en sí, algo así como script , ./script , /home/user/bin/script o lo que sea. Cualquier argumento aparece como "$1" , "$2" , "$3" y así. El conteo de argumentos está en la variable de shell "$#" .

Las formas comunes de lidiar con esto involucran comandos de shell getopts y shift . getopts es muy parecido a C getopt() función de biblioteca. shift mueve el valor de $2 a $1 , $3 a $2 , y así; $# se decrementa. El código termina mirando el valor de "$1" , haciendo cosas usando un caseesac para decidir sobre una acción, y luego hacer un shift mover $1 al siguiente argumento. Solo tiene que examinar $1 , y tal vez $# .


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

  2. ¿Cómo se analizan los argumentos de la línea de comandos remotos de Ssh?

  3. Cómo usar las funciones de shell de la línea de comandos en Linux

  4. Cómo pasar un argumento en Expect a través de la línea de comando en un script de shell

  5. ¿Cómo ocultar una contraseña pasada como argumento de línea de comando?

Cómo ejecutar el comando / secuencia de comandos de Linux Shell en segundo plano

Cómo iniciar en la línea de comandos de Linux

Cómo almacenar un comando de Linux como una variable en el script de Shell

¿Cómo ejecutar un comando en un script de Shell?

¿Cómo leer argumentos de línea de comando en scripts de Shell?

¿Cómo pasar argumentos a un script invocado por el comando fuente?