En este SCRIPT, la línea url=$1 es nuestro punto de partida. Aquí, asignamos el valor del primer argumento pasado al script a la variable URL. Siempre que se llama a este script, se espera que el usuario proporcione una URL como primer argumento. Luego, esta URL se almacena en la variable URL, que posteriormente se utiliza en la operación de coincidencia de expresiones regulares dentro de la construcción [[…]].
Shell
1
2
3
4
5
6
7
8
9
10
#!/bin/bash
# Ingreso url como parametro
url=$1
# Verifica si URL es correcta y imprime el dominio
if[["$url"=~^https?://([^/]+)]];then
dominio=${BASH_REMATCH[1]}
echo"Nombre de dominio: $dominio"
else
echo"URL ingresada es incorrecta"
fi
A continuación se muestra una ejecución del script :
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:
¿Te ha servido este sitio alguna vez? Cada script, cada línea de ayuda aquí es fruto de horas de trabajo y pasión por compartir. Si alguna vez resolviste un problema gracias a esta página, considera hacer una donación. Tu aporte —por pequeño que sea— mantiene vivo este proyecto y me impulsa a seguir creando.