nano 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:
|
← Igual a | == hace lo mismo pero permititiendo comodines ← No igual a ← Menor que ← Mayor que ← No es nulo ← Es nulo |
Para números:
|
← Igual a ← No igual a ← Menor que ← Mayor que ← Menor o igual que ← Mayor o igual que |
Para archivos y carpetas:
|
← 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