SHELLSCRIPT
VARIABLES
→ Para asignar un valor a una variable:
A = valor
→ Si queremos asignarle el valor generado por un comando:
A = $(comando)
→ Para consultar el valor de una variable, hay que poner $ delante del nombre del nombre de la
variable
echo $A
→ Para preguntar al usuario el valor de una variable:
read VARIABLE
Con -p podemos poner una pregunta:
read -p “Tu nombre” NOMBRE
Con -s pregunta una contraseña (no muestra el texto)
VARIABLES ESPECIALES
$HOME contiene la ruta del hombe del usuario que la consulta
$USER contiene el login del usuario que la consulta.
$1 $2 $3 primer, segundo, tercer… parámetro pasado al script
$? contiene el resultado del último comando o shellscript ejecutado (0 si ha sido exitoso,
otro valor si error)
$* contiene todos los parámetros juntos pasados por parámetro al script
CONDICIONES IF
→ Para realizar una ejecución condicional, se utiliza if
if [condicion]; then
comandos
fi
o bien
if [condicion]; then
comandos si se cumple
else
comandos si no se cumple
fi
→ Las condiciones pueden ser:
[ -f fichero ] Existe el fichero indicado.
[ -d carpeta] Existe la carpeta indicada.
[ $V ] La variable indicada tiene valor.
[ “$A” == “$B” ] La primera variable tiene el mismo valor que la otra
[ “$A” != “$B” ] La primera variable tiene distinto valor que la otra.
[ $A -lt num ] La variable tiene un valor menor que el número
(SENTENCIA CASE)
BUCLE WHILE
Permite ejecutar un conjunto de acciones mientras se cumpla una condición (del mismo formato que
las condiciones de if)
while [ condicion ]; do
comandos del bucle;;
done
→ Si queremos hacer un bucle infinito:
while (true); do
comandos
done
BUCLE FOR
Permite que una variable vaya cogiendo valores de una lista
for variable in lista valores
do
comandos
done
→ Podemos tomar los valores del resultado de un comando
for i in $(cat /tmp/valores); do echo $i; done
→ Podemos usar el formato C:
for ((i=0; i<100; i++)); do
comandos $i
done
PARA ROMPER UN BUCLE, AUNQUE NO SE CUMPLA LA CONDICIÓN DE SALIDA, SE
UTILIZA break
FUNCIONES
→ Para definir una función:
function nombreFuncion ()
{
comandos de la funcion
}
→ Para invocar a esa función, simplemente se pone su nombre y se le pasan los parámetros , como
si fuera un shellscript:
nombre par1 par2 par3
→ Dentro de la función podemos acceder a los valores que se han pasado por parámetro con $1 $2
$3
→ Para recuperar el valor retornado (con echo) por una función:
A= $(nombre par1 par2 par3)
OPERACIONES ARITMÉTICAS
→ Para realizar operaciones aritméticas se puede utilizar $(( ))
A=$((1+5-$B))
suma +
resta -
multiplicación *
división /
resto %