PEDRO ALBERTO ARIAS QUINTERO
El shell es un intérprete de órdenes, los
intérpretes de órdenes de Linux son
auténticos lenguajes de programación.
Como tales, incorporan sentencias de
control de flujo, sentencias de
asignación, funciones, etc.
Los programas de shell no necesitan ser
compilados como ocurre en otros lenguajes.
En este caso, el propio shell los ejecuta línea
a línea. A estos programas se les conoce con
el nombre de shell scripts y son los
equivalentes a los archivos por lotes de otros
sistemas operativos.
De Pelos

Crear un archivo de texto con un editor (vi,
emacs, etc.). Este archivo contendrá las
órdenes que el shell va a ir interpretando y
ejecutando.

Asignar permisos de ejecución al archivo
creado, utilizando la orden chmod.

Ejecutar el script generado pasándole los
parámetros
La primera línea de cada script debe
contener: #!/bin/bash
 Una línea de comentarios debe
comenzar con el carácter # . Estos
comentarios no se verán en pantalla
cuando se ejecute el script.
 Para mostrar comentarios que luego
veremos por pantalla, se utilizará el
comando echo

$# Número de parámetros que han pasado a la
shell.
 $* Un argumento que contiene todos los
parámetros que se han pasado ($1, $2...) menos
el $0.
 $? Número donde se almacena el código de
error del último comando que se ha ejecutado.
 $$ Número de proceso actual (PID)
 $! Último número de proceso ejecutado.

#!/bin/bash
#script que multiplica dos variables leídas desde
teclado
 echo “Multiplicación de dos variables”
 echo “-------------------------------“
 echo –n “Introduce la primera variable:“
 read var1
 echo –n “Introduce la segunda variable:“
 read var2
 resultado=`expr $var1 \* $var2`
 echo El resultado de la multiplicación es
=$resultado


En el shell se pueden definir variables y por tanto dentro de los
scripts también. Aquí no hay declaración de tipos pero sí que
podemos definir variables que contienen números, cadenas,
booleanos e incluso arrays.
 Para declarar una variable basta con hacer:
 VARIABLE=valor
 La podemos exportar para que se convierta en una variable
global.
 export VARIABLE
 A partir de que se crea la variable ya podemos acceder a ella a
través de su nombre con el símbolo del dólar por delante.
 echo $VARIABLE
 Este es un ejemplo de uso de variables:


Como asignar valores a variables





Como invoco Variables






Var1=666
MI_NOMBRE=“Pedro"
NOMBRES=“Pedro Lucia Estella Roberto Juan"
BOOLEANO=true
echo "Echemos un ojo a las variables "
echo "Un número: ${una_variable}"
echo "Un nombre ${MI_NOMBRE}"
echo "Un grupo de nombres: ${NOMBRES}“
# Variables de entorno
echo "Mi directorio actual: ${PWD} y mi usuario ${UID}"
Ya que tenemos variables, que mejor que
poder operar con ellas de alguna forma,
Al igual que en cualquier otro lenguaje
de programación disponemos de
operadores aritméticos y lógicos,
aunque su uso no es tan simple.
#!/bin/bash
#,
+, *, /, %, **, variable++
# == : igualdad
# != : desigualdad
# Pruebas
VALOR1=23
VALOR2=45
# Para las operaciones puede usarse expr o []
RESULTADO=`expr ${VALOR1} + ${VALOR2}`
echo "Resultado: ${RESULTADO}"
RESULTADO=`expr ${VALOR1} + ${VALOR2} + 3`
echo "Resultado: ${RESULTADO}"
En el shell podemos crear las habituales estructuras
condicionales if o if-else.
Esta sería la forma de if:
if condición; then
operaciones
fi

ó
if condición
then
operaciones
fi
if condición
then
operaciones
else
operaciones
fi
if condición
then
operaciones
elif condición
then
operaciones
else
operaciones
fi

El case o el switch-case tan típico del lenguaje C
también está disponible aquí.
case variable in
valor1)
operaciones_si_variable=valor1
;;
valor2)
operaciones_si_variable=varlo2
;;
*)
operaciones_en_cualquier_otro_caso
esac
También tenemos las clásicas iteraciones for y while además de otras, siempre que
necesitemos realizar tareas repetitivas, recorrer arrays o resultados de comandos, etc...
for
Se puede hacer un for de distintas maneras. El más simple tiene esta forma:
for var in lista
do
operaciones
Done
## un for simple
echo "FOR simple: "
for i in a b c d e f g h i
do
echo "letra: $i"
done
Muchas veces nos interesa una iteración sin un
número de vueltas fijo, que simplemente
dependa de una condición. Eso lo podemos
conseguir con el while, cuya forma resumida
es esta:
while condición
do
operaciones
done
Until es similar a while, salvo que su ejecución
se detiene de forma inversa. Cuando la
condición resulta falsa, termina el bucle. Esta
es su forma:
until condición
do
operaciones
done
Mediante select podemos crear menús de
selección de manera muy cómoda. Podemos
definir un array con todas las opciones y
select las mostrará por nosotros. Esta es su
forma general:
select variable in lista
do
operaciones
done
Descargar

Shell scrip