Los scripts Bash a menudo necesitan aceptar una cantidad variable de argumentos. Aquí es donde entra en juego $@. Es una variable de shell especial que contiene todos los argumentos proporcionados al script.
En las secuencias de comandos bash, existen parámetros especiales que proporcionan formas adicionales de manejar los datos de entrada. Estos incluyen $*, $@ y $#.
Los parámetros $* y $@ representan todos los argumentos que se pasaron al script. Si bien pueden parecer idénticos, su comportamiento difiere cuando intentas repetirlos en un script. Ilustremos esto con un ejemplo:
Shell
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
echo"iterando con \$*"
forarg in"$*"
do
echo$arg
done
echo""
echo"Iterando con \$@"
forarg in"$@"
do
echo$arg
done
Al ejecutar es scripts, pasándole varios parámetros :
Se pueden construir condicionales complejas donde se conjugan varias de ellas a través de los operadores los booleanos “y” &&, “o” (||) y negación (!), este último que ya hemos visto. Ilustrémoslo con un par de ejemplos en los que usaremos comando date para obtener información sobre el día de hoy. Con “o” basta que se cumpla una de las dos condiciones:
Shell
1
2
3
4
5
6
#Asignamos a la variable today el día de la semana.
today=$(date+%A)
#Evaluamos el condicional.
if[$today=="lunes"]||[$today=="martes"];then
echo"Hoy es lunes o martes."
fi
Con “y” han de cumplirse ambas condiciones:
Shell
1
2
3
4
5
6
7
#Asignamos a la variable today el día de la semana.
dia=$(date+%e)
mes=$(date+%B)
#Evaluamos el condicional.
if[$mes=="marzo"]&&[$dia=="13"];then
echo"Hoy es mi cumpleaños."
fi
El operador && siempre se evalua antes que ||, pero se puede alterar esto agrupando los comando con paréntesis. Por ejemplo:
El análisis o parseo de un documento XML es útil en varios contextos, ya que permite estructurar y extraer información de manera programática. Aquí hay algunas situaciones comunes en las que el análisis de documentos XML puede ser beneficioso:
1. **Integración de Sistemas:** Cuando trabajas con sistemas que intercambian datos en formato XML, el análisis te permite procesar y utilizar la información recibida o preparar datos para enviarlos a otros sistemas.
2. **Procesamiento de Configuraciones:** Algunas aplicaciones utilizan archivos XML para almacenar configuraciones. Analizar estos archivos te permite modificar o extraer información de configuración de manera programática.
3. **Web Scraping:** Al extraer datos de sitios web, a veces encuentras información estructurada en formato XML. El análisis de estos documentos te permite recuperar la información deseada.
4. **Generación de Informes:** Puedes utilizar el análisis de XML para extraer datos específicos y generar informes o resúmenes personalizados.
5. **Automatización de Tareas:** Si tienes tareas repetitivas que implican manipulación de datos en formato XML, el análisis te permite automatizar estas tareas mediante scripts o programas.
6. **Interoperabilidad:** En entornos donde se utilizan diferentes tecnologías y lenguajes de programación, el análisis de XML proporciona una forma común de compartir datos estructurados.
En general, el análisis de documentos XML es valioso cuando necesitas procesar datos estructurados de manera eficiente y precisa en entornos donde XML se utiliza como formato de intercambio de información. Supongamos que tenemos el siguiente archivo XML, llamado «archivo.xml» :
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<Column>
<Name>NuevoVALOR</Name>
<EditField>TextLIND</EditField>
<ColumnSpan0>1<6/ColumnSpan0>
<Title>NUEVO</Title>
</Column>
<Column>
<Name>NuevoVALOR</Name>
<EditField>TextBox</EditField>
<ColumnSpan0>4<5/ColumnSpan0>
<Title>NORMAL</Title>
</Column>
<Column>
<Name>NuevoVALOR</Name>
<EditField>TextMEL</EditField>
<ColumnSpan0>23</ColumnSpan0>
<Title>LONG</Title>
</Column>
<Column>
<Name>NuevoVALOR</Name>
<EditField>TextSOL</EditField>
<ColumnWidth>90px</ColumnWidth>
<Title>suspenso</Title>
</Column>
Aquí por ejemplo, vemos que tenemos 3 campos, por cada «Column». Queremos simplificar esto y que nos muestre un archivo de texto con los 3 campos por linea, separados por una coma «,» (En estos ejemplos solo los muestro por pantalla, pero pueden ser volcados a un archivo de texto) :
Al ejecutar cualquier de los codigos anteriores, nos mostraría :
Shell
1
2
3
4
NUEVO
NORMAL
LONG
Suspenso
Supongamos que queremos cambiar el valor del campo «Name», Poner el mismo valor a este campo en todo el documento XML , lo haríamos con el siguiente código :
En este sript se buscan errores en un archivo, para el ejemplo se buscan los errores en los ultimos 30 minutos del archivo log. Tomando la fecha y hora actual como final y en base a esta tomar los ultimos 30 minutos como fecha inicial.
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash
# Ruta del archivo de log
archivo_log="/ruta/del/archivo.log"
# Dirección de correo a la que se enviarán los errores
correo_destino="correo@dominio.com"
# Obtener la fecha y hora actual en el formato del log
fecha_actual=$(date+"%Y-%m-%d %H:%M")
# Calcular la fecha y hora hace 30 minutos en el formato del log