El programa de script de shell diseñado en Linux puede aceptar parámetros ingresados desde la línea de comando y ejecutar los comandos de menú correspondientes.
El shell Bash proporciona argumentos de línea de comandos para agregar valores de datos después del comando), opciones de línea de comandos para modificar el comportamiento del comando (valores de un solo carácter) y lee la entrada del teclado directamente.
1. Parámetros de la línea de comando
La forma más básica de pasar datos a un script de shell es utilizar parámetros de la línea de comando.
1) Leer parámetros
Las variables de los parámetros de entrada son parámetros posicionales, representados por números estándar.
Donde $0 es el nombre del programa, $1 es el primer parámetro, $2 es el segundo parámetro, y así sucesivamente hasta que $9 es el noveno parámetro.
Los scripts de Shell asignan automáticamente argumentos de línea de comando a varias variables posicionales.
Cuando ingresas varios parámetros al mismo tiempo, debes utilizar espacios para separarlos. Para incluir espacios en los valores de los parámetros, debe utilizar comillas simples o dobles. )
Cuando hay más de 9 parámetros, debe encerrar las variables entre llaves en el script de shell, como ${10}. Por lo tanto, se puede utilizar cualquier número de parámetros.
2) Leer el nombre del programa
La cadena pasada a la variable $0 es en realidad la ruta del programa.
Utilice el comando basename para eliminar el prefijo de ruta y obtener solo el nombre del programa.
3) Script de prueba
Se producirá un error cuando el script crea que debería contener parámetros, pero en realidad no los contiene.
Un buen enfoque es comprobar los parámetros antes de usarlos para asegurarse de que haya datos. Puede verificar esto usando el parámetro -n.
Ejemplo: Si [–n "$ 1"], entonces...otros...el barco no correrá con los costos de carga
2 Variables de parámetros especiales
Se utiliza para rastrear los parámetros de la línea de comando.
1) Recuento de parámetros
Utilice la variable especial $# para probar el número de parámetros de línea de comando incluidos al ejecutar el script. Puedes usar $# en cualquier parte de tu script.
Ejemplo: si [$#-ne 2] puedes probar el número de parámetros.
Puedes usar ${! #}Devuelve el último parámetro de la línea de comando. Cuando no hay parámetros, $# es 0, mientras que ${! #} es el nombre del programa)
Obtener todos los datos
La variable $* trata todos los argumentos proporcionados en la línea de comando como una palabra y trata varios argumentos como un solo argumento.
La variable $@ trata todos los argumentos proporcionados en la línea de comando como varias palabras en la misma cadena. Permite iterar valores dentro del mismo, usualmente usando for) para separar diferentes parámetros.
3. Cambiar
El comando shift puede cambiar la posición relativa de los parámetros de la línea de comando. Mueve silenciosamente cada variable de parámetro una variable de posición $0 hacia la izquierda, descartando $1. ¡Cuidado, no se puede restaurar! )
Esta es una buena manera de iterar sobre parámetros cuando se desconoce el número de parámetros.
Puede proporcionar un parámetro de desplazamiento para lograr varios cambios de desplazamiento.
4. Opciones de manejo
Las opciones son letras individuales introducidas por un guión que cambian el comportamiento de un comando.
1. Encuentra la opción.
1) Procesamiento de opciones simples
Las opciones se pueden procesar como parámetros de línea de comando y las declaraciones de caso se pueden usar para determinar si las opciones se ajustan al formato.
2) Separar opciones de parámetros
Cuando utilices opciones y parámetros al mismo tiempo, puedes utilizar - para indicar el final de la lista de opciones. Cuando se encuentra -, el shell sabrá que va seguido de un argumento normal y dejará de usar la opción de manejo de casos.
3) Opciones de proceso con valores
Las opciones van seguidas de los valores de los parámetros. Una forma es usar shift y leer el último argumento después de la opción correspondiente en el caso. Un método mejor es el siguiente:
2. Utilice el comando getopt
El comando getopt es muy conveniente al procesar opciones y parámetros. Reorganiza los parámetros para facilitar el análisis.
1) Formato de comando
Getopt puede aceptar cualquier forma de lista de opciones y parámetros y convertirlos automáticamente al formato apropiado.
El formato del comando es: opción getopt parámetro optstring.
Opstring se utiliza para definir letras de opción válidas en la línea de comando y qué letras de opción requieren valores de parámetro.
2) Uso de getopt en un script
Necesita usar el comando set para reemplazar las opciones y parámetros de la línea de comando existentes con el formato formateado generado por el comando getopt.
Debe enviar los parámetros de la línea de comando del script original al comando getopt y luego enviar la salida del comando getopt al comando set, así: set–` getopts–q ab:CD "$@" `.
Sin embargo, el comando getopt no maneja bien los valores de parámetros con espacios. Analiza espacios como separadores de parámetros en lugar de combinar dos valores entre comillas dobles en un parámetro. La solución es la siguiente:
3) Comando getopts más avanzado
El comando getopts procesa las variables de parámetros de shell existentes en orden y solo procesa los parámetros detectados en el comando en cada llamada. . Una vez procesados todos los parámetros, salga con un estado de salida mayor que 0.
Excelente para analizar todos los argumentos de la línea de comando en un bucle.
Formato: variable getopts optstring
$optarg contiene el valor de la opción que requiere un valor de parámetro y $optind contiene la posición en la lista de parámetros cuando getopts dejó de procesarse.
Nota: Al procesar getopts, se eliminará el - delante de la opción, por lo que el guión no es necesario en el caso correspondiente.
Buenas características:
1) Puede incluir espacios en los valores de los parámetros.
2) No puede haber un espacio entre las letras de las opciones y los valores de los parámetros.
3) Vincula todas las opciones no definidas en la línea de comando a un signo de interrogación de salida.
5. Opciones estandarizadas
Algunas opciones de letras tienen significados estándar. Es mejor definir el significado de las opciones en términos de significados estándar.
-a–c–d–e–f–h–I–l–n–o–q–r–s–v-x–y
6. /p>
Utilice el comando de lectura cuando necesite obtener información del ejecutor del script durante la ejecución.
1)
El comando de lectura acepta entrada estándar u otra entrada de descriptor de archivo. Después de leer, coloque los datos en variables estándar.
-p le permite especificar el mensaje directamente en la línea de comando de lectura.
Puede especificar varias variables o puede colocarlas en la variable de entorno de respuesta sin especificarlas)
2. Timing
Utilice -t para especificar el tiempo. temporizador, la lectura devuelve un estado de salida distinto de cero antes de que expire el temporizador.
Utilice -n para especificar el número de caracteres a introducir. Cuando la entrada alcanza una cantidad predeterminada, finalizará automáticamente la entrada.
3) Lectura silenciosa
Utilice -s para evitar que se muestren entradas en el terminal, como ingresar una contraseña)
4) Lectura de archivos p>
La forma más común es usar el comando cat y canalizarlo a una instrucción while que contenga lectura.