Un script para bash consiste en una secuencia de comandos que van a ser interpretados por bash dentro de un archivo de texto. Los scripts resultan muy útil por ejemplo para programar tareas, dentro de ellos escribiremos todo lo que queremos que se ejecute y luego programaremos dicha tarea.
Existen 4 formas de decirle a bash que interprete el contenido del archivo:
-Ejecutar /bin/bash nombre_archivo
-Usar el comando source seguido del nombre de archivo
-Ejecutar ./nombre_archivo (debemos de dar permisos de ejecución sobre el archivo)
-Comenzar el contenido del archivo con la línea #!/bin/bash. (damos permisos de ejecución y para ejecutar el archivo tecleamos el nombre del archivo tal cual y luego intro)
#!/bin/bash
echo “Esto es un script”
ls -l
echo “Listado del directorio actual OK…”
echo -n “Lectura desde el teclado, escribe lo que quieras y pulsa intro: ”
#esto es un comentario y no se imprime en pantalla
read texto
echo $texto
En el código anterior tenemos el comando “echo” que sirve para imprimir comentarios, a continuación ejecutamos el comando “ls -l” que nos da un listado del directorio actual, en lugar de este comando podemos escribir cualquier otro como “mkdir”, “cp”, etc… El modificador “-n” del comando “echo” sirve para que al imprimir el mensaje no se produzca un salto de línea. El comando “read” se queda esperando hasta que escribamos algo y pulsemos intro o directamente pulsemos intro, luego el texto introducido se almacena en la variable “texto”. Para imprimir el contenido de esta variable antecedemos a su nombre el caracter “$”.
Contro de flujo:
IF
“if” verifica si una condición es verdadera o falsa y ejecuta uno u otro código, si se especifica.
if [ "$numero" = "1" ]; then
echo Has introducido un 1
else
echo No has introducido un 1
fi
CASE
“case” analiza varias condiciones y ejecuta el código de cada condición en el caso de que ésta sea cierta.
case $numero in
1 | 2)
echo “Has introducido 1 o 2″ ;;
3 | 4)
echo “Has introducido 3 o 4″ ;;
5)
echo “Has introducido 5″ ;;
*)
echo “Has introducido algo distinto a 1 2 3 4 o 5″ ;;
esac
Ciclos:
FOR
El “for” en los scripts no funciona como en la mayoría de lenguajes de programación, aqui el “for” realiza una serie de acciones sobre cada uno de los elementos de una lista y no para cada valor de una variable que se va incrementando.
for i in `ls -1 /tmp`
do
echo $i
rm -i $i
done
En el código anterior el comando “ls -l /tmp” genera una lista de todos los archivos existentes en el directorio /tmp y el comando “for” recorre cada uno de ellos e imprime en pantalla el nombre de cada y con el comando “rm -i $i” se pregunta si se desea borrar cada uno de ellos.
WHILE
“while” ejecuta una serie de acciones siempre que se cumpla una determinada condición y hasta que ésta sea falsa, mientras la condición sea verdadera las acciones se ejecutan una y otra vez.
#!/bin/bash
echo “Este script imprime en pantalla todo el texto que introduzcas”
echo “Introduce x para terminar”
while [ "$texto" != "x" ]
do
echo -n “Introduce el texto:”
read texto
echo -n “Has introducido: ”
echo $texto
done
El código anterior imprime en pantalla todo lo que introduzcas hasta que metas “x”
Computer
Dejar un comentario