Buenas estimados amigos hoy les traigo este resumen de bash para adentrarse a este lenguage de shell unix, espero que les sirva y les sea de ayuda sin mas saludos javier …
#!/bin/bash
echo “Hola Mundo”
La primera línea #!/bin/bash sirve para indicar que shell utilizamos (en nuestro caso bash) y donde se pueden localizar. La segunda línea de nuestro script, simplemente utiliza el comando para escribir en pantalla
(echo) y escribe la línea Hola Mundo.
Una vez creado el fichero, debemos darle permisos de ejecución, mediante el comando
chmod a+x primero.sh
VARIABLE DE TIPO:
entero=3
flotante=1.2
string=”esto es un string”
boleano=True
complejos=5+5j
llamar a la variable imprimirse en pantalla
echo “Este variable es de tipo: $entero”
echo “Este variable es de tipo: $flotante”
echo “Este variable es de tipo: $string”
echo “Este variable es de tipo: $boleano”
echo “Este variable es de tipo: $complejos”
OPERACIÓN ARITMÉTICA
$((OPERACIÓN ARITMÉTICA))
Otra expansión que podemos usar es $(( )) (símbolo dólar pero con dos paréntesis). Los dobles
paréntesis podemos sustituirlos si queremos por corchetes. $[ ].
Esta expansión va a tratar como una expresión aritmética lo que esté incluido entre los
paréntesis, va a evaluarla y devolvernos su valor.
NUMERO=4
echo $(($NUMERO+3))
# sería lo mismo poner echo
$[$NUMERO+3]
Operadores de comparación de valores numéricos.
Numero1 -eq Numero2
====Verdadero si Numero1 (equal) es IGUAL a Numero2.====
Numero1 -ne Numero2
====Verdadero si Numero1 NO es IGUAL a Variable2.(not equal).====
Numero1 -lt Numero2
====Verdadero si Numero1 es MENOR a Variable2.(less than).====
Numero1 -gt Numero2
====Verdadero si Numero1 es MAYOR que Variable2.(greater that).====
Numero1 -le Numero2
====Verdadero si Numero1 es MENOR O IGUAL queNumero2. (less ore qual).
Numero1 -ge Numero2
====Verdadero si Numero1 es MAYOR O IGUAL queNumero2 . (greater or equal).
Operaciones condicionales usando test.
-a fichero
====Verdadero si fichero existe.====
-d fichero
====Verdadero si fichero existe, y es un fichero de tipo directorio.====
-f fichero
====Verdadero si fichero existe, y es un fichero regular.====
-r fichero
====Verdadero si fichero existe y se puede leer.====
-w fichero
====Verdadero si fichero existe y se puede escribir.====
-x fichero
====Verdadero si fichero existe y se puede ejecutar.====
fichero1 -nt fichero2
====Verdadero si fichero1 es más nuevo que fichero2.====
fichero1 -ot fichero2
====Verdadero si fichero1 es más viejo que fichero2.====
CONDICIONALES:
IF
if [ expresión1 ]; then
Realizar si expresión1 es verdadera
elif [ expresión2 ]; then
Realizar si expresión1 es falsa, pero es verdadera expresión2
elif [ expresión3 ]; then
Realizar si exp1 y exp2 son falsas, pero es verdadera expresión3
else
Realizar si todas las expresiones anteriores son falsas
fi
Si lo necesitamos, podemos anidar expresiones usando tanto and (y, &&) como or (o, ||).
if [ expresión1 ] && [ expresión2 ]; then
se ejecuta si expresión1 Y expresión2 son verdaderas
fi
if [ expresión1 ] || [ expresión2 ]; then
se ejecuta si expresión1 O expresión2 son verdaderas
fi
También podemos usar el operador not (!) para indicar una negación.
if ! [ expresión1 ]; then
se ejecuta si expresión1 NO es verdadera
fi
CASE.
Hemos visto la principal estructura condicional que es el if, pero tenemos alguna otra a nuestra
disposición, como el case. Esta estructura nos permite ejecutar varias acciones, dependiendo
del valor de una variable o expresión.Muy utilizado para listas a seleccionar
case VARIABLE in
valor1)
se ejecuta si VARIABLE tiene el valor1
;;
valor2)
se ejecuta si VARIABLE tiene el valor2
;;
*)
Se ejecuta si VARIABLE tiene otro valor distinto
;;
esac
FOR.
NOTA:
“El ciclo for es para iterar de una forma administrada ya sea listas strings tuplas diccionarios”
La estructura básica de for es la siguiente:
for VARIABLE in conjunto; do
Estas líneas se repiten una vez por cada elemento del conjunto,
Y variable va tomando los valores del conjunto uno por uno.
done
WHILE
NOTA:
“El ciclo while es como un if pero este siempre se va a ejecutar mientras que la condicion se cumpla creandose asi un ciclo infinito ojo ver como romper ese ciclo”
while [ expresión ]; do
estas líneas se repiten MIENTRAS la expresión sea verdadera
done
UNTIL
NOTA:
“El ciclo until es como un while pero este siempre se va a ejecutar hasta que la condicion se cumpla creandose asi un ciclo infinito ojo ver como romper ese ciclo”
until [ expresión ]; do
estas líneas se repiten HASTA que la expresión sea verdadera
done
FUNCIONES
NOTA:
“funciones son bloques de codigo sueltos que se agrupan dentro de la funcion para reutilizarlos mas tarde mas de una vez”
Usar funciones en los scripts es muy simple. Basta con usar la siguiente estructura al principio del script:
function nombre_función {
líneas de la función
}
nombre_función #para llamarla
#!/bin/bash
function mayor_edad {
if [ $1 -ge 18 ]; then
echo “Si, es mayor de edad”
else
echo “No, es menor de edad”
fi
}
read -p “Dime la edad del que quiere entrar : ” EDAD
PASO DE PARÁMETROS A UN SCRIPT.
Podemos pasar parámetros tanto a los scripts como a las funciones. Los parámetros en bash se indican como un símbolo dólar ($) seguido de un número o carácter. Los principales parámetros que se pueden usar son:
$1 .====Devuelve el 1o parámetro pasado al script o función al ser llamado.
$2 .====Devuelve el 2o parámetro.
$3 .====Devuelve el 3o parámetro. (Podemos usar hasta $9).
$* .====Devuelve todos los parámetros separados por espacio.
$# .====Devuelve el número de parámetros que se han pasado.
$0 .====Devuelve el parámetro 0, es decir, el nombre del script o de la función.
Read -p “De esta manera se introducen datos por la terminal y se guarda en parametros:” parametros
echo “El valor introducido fue: $ parametros”
Ejemplo:
#!/bin/bash
# parámetros.sh – script sobre parámetros.
echo “El primer parámetro que se ha pasado es “ $1
echo “El tercer parámetro que se ha pasado es “ $3
echo “El conjunto de todos los parámetros : “ $*
echo “Me has pasado un total de “ $# “ parámetros”
echo “El parámetro 0 es : “ $0
faltan mas cosas como trabajos con listas diccionarios etc pero es solo un resumen 😉




