Bash¶
¿Que es un script?¶
Un script es una serie de comandos almacenados en un fichero que se ejecutan con una «shell» (intérprete de comandos), el contenido del fichero puede contener mas datos, tales como variables o condicionales usados habitualmente en programación.
Y aquí viene el problema de mucha gente, ¿necesito saber programar para administrar un sistema Linux? La respuesta es no, pero sí es altamente recomendable dado que te ayudará en muchas tareas, por lo cual recomiendo que sigáis leyendo.
Inicialmente un script nos puede servir para usar comandos para tareas periódicas o repetitivas.
Aquí nos centraremos en la shell de bash, que es de las que más se usa en linux.
Cabecera del script¶
Los scripts deben comenzar con la cabecera «#!», que indica la shell con la que deben ejecutarse, haciendo referencia a su ruta absoluta. Por ejemplo para bash sería:
Variables¶
Lo siguiente que se debe hacer es declarar las variables que vamos a usar:
Las variables al declararlas se escriben de manera normal, por ejemplo «declare -i var».
Para usarlas en el script hay que escribir por delante el carácter del dolar «$».
Para delimitar los caracteres se usan los caracteres de llaves, «{» y «}».
Para seleccionar un valor de un array se introduce la posición del array entre corchetes, «[» y «]».
Opciones de «declare»:
Una vez declaradas las variables ya podemos crear las funciones, estas se declaran antes que las operaciones ya que los scripts en bash se interpretan línea a línea, y si usamos una función antes de estar creada nos devolverá un error la ejecución del script.
Funciones¶
Las funciones se declaran de la siguiente manera:
Para llamar a una función y que se ejecute su contenido solo debemos escribir en nombre de la función y el script al llegar a ese punto ejecutara todo el contenido.
Las funciones son útiles para ahorrar código que se repite o para organizar el contenido.
Tras las funciones ya podemos empezar con los condicionales, los bucles y las operaciones.
Condicionales¶
Los condicionales sirven para comparar variables con valores o con otras variables para realizar una operación u otra en función del resultado de la comparación.
Los condicionales mas usados son «if» junto con «else», «case» y «select».
IF¶
Los comandos se ejecutan cuando la condición es verdadera
IF ELSE¶
Los comandos-if se ejecutan cuando la condición es verdadera, y comandos-else se ejecuta cuando la condición es falsa.
ELIF¶
Los comandos-if se ejecutan cuando la condición-if es verdadera, y comandos-elif se ejecuta cuando la condición-if es falsa y la condición-elif son verdaderas.
CASE¶
Un case es como un «if» pero con varias condiciones, lo que se evalua es si el valor de «expresion» es igual «valor1», «valor2», «valorX»…, y se ejecutan los comandos que hay dentro del valor con el que es coincidente, si ningún valor coincide se ejecutan los «comandos-default», es la salida por defecto cuando el valor de «expresion» no es igual a ninguna de las introducidas en «valorX»
Muestra una lista de opciones para que el usuario elija una, las opciones son los valores del array, y la variable $i contendrá el valor el valor del array que se ha elegido.
SELECT¶
Condiciones¶
Las condiciones son las comparaciones que se pueden utilizar por ejemplo en un «if».
Cadenas alfanuméricas
Valores numéricos
Atributos de ficheros
Bucles¶
Un bucle es la repetición de una operación. Puede servirnos para realizar varias veces una operación, como un contador.
Los mas usados son «for», «for in», «while» y «until».
FOR¶
El contenido se ejecuta mientras se cumpla la condición del medio, en este caso que $i sea menor o igual que 5. La primera condición inicia la variable $i y la tercera condición es el operando de incremento o decremento.
FOR IN¶
Se ejecutará el contenido del bucle una vez por cada valor del array, el array puede ser un comando ejecutado normal que devuelva uno o mas valores, como un «ls».
Se puede crear un FOR IN que simule el funcionamiento de un FOR:
WHILE¶
El bucle se ejecuta siempre que se cumpla la condición de que $i sea menor o igual que 5.
UNTIL¶
El bucle se seguirá ejecutando hasta que se cumpla la condición, en este caso hasta que la variable $i tenga un valor numérico mayor que 5.
Operaciones¶
Las operaciones son los comandos que finalmente lanzaremos, estos son comandos que usaríamos normalmente el la línea de comando bash.