Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guia de Bash Lab #3
Guia de Bash Lab #3
Sistemas Operativos
PROGRAMACIN EN BASH
Gua No. 3 Sistemas Operativos
Bash (Bourne again shell) es un programa informtico cuya funcin consiste en interpretar rdenes.
Script: Es un programa escrito para el shell o intrprete de lnea de comando, desarrollado con
comandos bash.
Los scripts son un conjunto de instrucciones generalmente almacenadas en un archivo de texto que
deben ser interpretados lnea a lnea en tiempo real para su ejecucin.
Creacin y Ejecucin de Script
Empezar el script poniendo en la primera lnea #!/bin/bash, de esta forma indicamos que el script se
debe ejecutar con bash.
Los archivos de bash deben de tener una extensin .sh
Para ejecutar los archivos debemos de utilizar cualquiera de los siguientes comandos:
./<nombre de script>.sh ---> si se ejecuta de esta manera, hay que establecer el permiso de ejecutar
el archivo como un programa
sh <nombre de script>
Operadores o comandos
`
$
<fichero
>fichero
>>fichero
#
Descripcin
Evala el contenido y devuelve el resultado.
Ejem: var=`date`. Ejecuta el comando date y su valor es
devuelto para almacenarlo en la variable var.
Se usa para asignar una cadena de caracteres a una
variable o para imprimir una cadena de caracteres. Se
le considera entrecomillado dbil.
Se usa para asignar una cadena de caracteres a una
variable o para imprimir una cadena de caracteres. Se
le considera entrecomillado fuerte.
Se utiliza para referirse a una variable y obtener el
valor que sta almacena
Redirige el contenido de fichero a la entrada estndar
(entrada mediante el teclado) del programa
Redirige la salida estndar (se refiere a imprimir algo
en pantalla con el comando echo) del programa a
fichero
Redirige la salida estndar del programa a fichero.
Aade esta salida a fichero si ste ya existe.
Se usa para comentarios
Echo
opciones:
-e ejemplo: echo e
Printf
Read
*
?
Parmetros Posicionales
Estos parmetros son los encargados de recibir los argumentos de un script y los parmetros de una
funcin. Sus nombres son 1, 2, 3, 4, etc. Y para acceder a ellos utilizamos el smbolo $, de la forma $1,
$2, $2, $4, etc. El parmetro posicional 0 almacena el nombre del script que se est ejecutando.
Variables $*, $@, $#
La variable $# almacena el nmero de argumentos o parmetros recibidos por el script o funcin.
Tanto $@ como $* nos devuelven los valores de los argumentos recibidos por el script o funcin.
Ejemplo:
echo El script $0 recibe $# argumentos: $*
--> Entre el nombre de la variable y el signo = no puede haber espacio, al igual que no
puede haber espacio entre el signo = y el valor de la variable.
${#var} --> Nos devuelve el valor de 4
Declaracin de funciones:
Function <nombre funcin>
{
Comandos de bash
}
<Nombre funcin> ()
{
Comandos de bash
}
If <condicin>; then
<sentencias>
elif <condicin>; then
<sentencias>
else
<sentencias>
fi
If <condicin>; then
<sentencias>
else
<sentencias>
fi
Test Condicionales
Sirven para evaluar muchas otras condiciones. La sintaxis es la siguiente:
Verdadero si
Str1 = str2
Str1 != str2
-n str1
-z str1
Comparacin de Enteros
Operador
Descripcin
-lt
Menor que
-le
-eq
Igual
-ge
-gt
Mayor que
Distintos
Bucle for
for var [in lista]
do
<sentencias>
done
in lista indica que se procesa todos esos elementos de uno a uno. Ejemplo:
for planeta in Mercurio Tierra Marte Venus Jupiter
do
echo $planeta
#Imprime cada planeta en una lnea
done
Bucles while y until
while <condicin >
do
<sentencias>
done
While se ejecuta mientras el cdigo de terminacin del comando sea exitoso, es decir 0.
Until se ejecuta hasta que el cdigo de terminacin del comando sea exitoso, se puede interpretar como
ejecutar varias veces un comando hasta que tenga xito.
Sentencia case
Case <expresin> in
<patron1>)
<sentencias>;;
<patron2>)
<sentencias>;;
.
esac
Cuando la expresin coincida con uno de los patrones se ejecutan dichas sentencias.