mano script.sh
chmod +x script.sh
Necesario para crear un script (ponerlo al principio del archivo):
#!/bin/bash
Al ejecutar un archivo se le puede pasar argumentos:
./script.sh arg1 arg2 ...
Dentro de un archivo, para hacer referencia a estos argumentos:
$num: LLamar un argumento en "num" del órgen 1 al máximo de 9.
$0: Devuelve el nombre del script / función.
$*: Devuelve a todos los argumentos separados por espacio.
$#: Devuelve el n. total de parámetros que se pasaron.
Imprimir un texto en pantalla:
echo 'texto'
Pedir un texto y guardarlo en la variable nombre_var:
read -p 'texto' nombre_var
Esperar cierto tiempo antes de hacer una acción:
sleep [Segundos]
Todo lo que esté dentro de " " se interpreta como variables y texto. En cambio en ' ' se interpresa todo como texto.
echo "$nombre_var"
Para texto:
valor = valor valor != valor valor < valor valor > valor -n valor -z valor |
← Igual a | == hace lo mismo pero permititiendo comodines ← No igual a ← Menor que ← Mayor que ← No es nulo ← Es nulo |
Para números:
valor -eq valor valor -ne valor valor -lt valor valor -gt valor valor -le valor valor -ge valor |
← Igual a ← No igual a ← Menor que ← Mayor que ← Menor o igual que ← Mayor o igual que |
Para archivos y carpetas:
-e ruta -r ruta |
← Si existe un archivo o carpeta | O se puede hacer con el comando test ← Si tiene permisos de lectura | Puede ser -w, -x |
Formato:
if [ condición1 ]; then // Qué hacer si se cumple la condición 1 elif [ condición2 ]; then // Qué hacer si se cumple la condición 2 else // Qué hacer si no se cumple ninguna condición fi
Siempre acaba en fi para así indicar el final de la condicional.
Si se cumplen ambas condiciones:
if [ condición1 ] && [ condición2 ]; then // Contenido fi
Una condición u la otra:
if [ condición1 ] || [ condición2 ]; then // Contenido fi
Si no se cumple la condición:
if ! [ condición1 ]; then // Contenido fi
Para ejecutar varias acciones, dependiendo del valor de una variable:
read -p 'texto' var case $var in 1) echo 'El valor es 1' ;; rojo) echo 'El valor es rojo' ;; *) echo 'Este valor no estaba en nigún _)' ;; esac
Formato para recorrer un conjunto de valores hasta llegar al final:
for nombre_var in conjunto; do // Contenido done
Ejemplo:
for i in 1 2 3 4 5; do echo "$i" done
Ejecuta su contenido si la condición es verdadero in definidamente hasta que se pare:
while [ condición ]; do // Contenido done
Lo mismo que WHILE:
until [ condición ]; do // Contenido done