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 parámetros de línea de comando (agregar valores de datos después del comando), opciones de línea de comando (valores de un solo carácter que modifican el comportamiento del comando) y lectura directa de la entrada del teclado.
1. Parámetros de la línea de comando
La forma más básica de pasar datos a un script de shell es usar 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, las variables deben estar 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 produce un error cuando el script cree que se deben incluir parámetros, pero en realidad no hay datos.
Un buen enfoque es comprobar los parámetros antes de usarlos para asegurarse de que haya datos. Puede utilizar el parámetro -n para comprobarlo.
Ejemplo: Si [–n " $ 1 "] entonces...otros...el barco no correrá con los costos de carga
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. Puede usar $ # en cualquier parte del script. Ejemplo: si [$# -ne 2] puede probar la cantidad 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)
2) Obtener todos los datos
Variable $* Trata todos los parámetros proporcionados en la línea de comando como una palabra y trata varios parámetros como un solo parámetro.
La variable $@ trata todos los argumentos proporcionados en la línea de comando como varias palabras en la misma cadena. Permite la iteración de los valores, generalmente 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 con no recuperarte! )
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 que comienzan con 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 las opciones de procesamiento de casos.
3) Manejar opciones 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 las letras de opción válidas en la línea de comando y qué letras de opción requieren valores de parámetro.
2) Usar 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 solo 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 de getopts en la lista de parámetros cuando se detuvo el procesamiento.
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) Lectura básica
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 especificarla)
2) Tiempo
Utilice -t para especificar el 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 alcance una cantidad predeterminada, la entrada finalizará automáticamente.
3) Lectura silenciosa
Utilice -s para evitar que se muestren entradas en el terminal, como ingresar una contraseña)
4) Leer archivos p>
La forma más común es usar el comando cat y canalizarlo a una instrucción while que contenga lectura.