Está en la página 1de 5

Ingeniera en Sistemas, UNAH

Sistemas Operativos
Elaborada por: Emilson Omar Acosta Girn
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 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
<fichero Redirige el contenido de fichero a la entrada estndar
(entrada mediante el teclado) del programa
>fichero Redirige la salida estndar (se refiere a imprimir algo
en pantalla con el comando echo) del programa a
fichero
>>fichero Redirige la salida estndar del programa a fichero.
Aade esta salida a fichero si ste ya existe.
# Se usa para comentarios
Ingeniera en Sistemas, UNAH
Sistemas Operativos
Elaborada por: Emilson Omar Acosta Girn
; Se usa como separador de comandos
IFS Es una variable que indica mediante qu carcter se
separan las palabras para asignarlas a las variables o
para imprimirlas.
Ejemplo:
IFS=, cuando encuentre una coma se separan esas
palabras o palabra de las dems.
Echo

opciones:
-e ejemplo: echo e
Imprime una etiqueta en pantalla. Agrega un cambio
de lnea al final del texto

Activa la interpretacin de los caracteres de escape,
como el cambio de lnea
Printf Tambin se utiliza para imprimir texto en pantalla, con
la diferencia que se le puede dar un formato especfico
al texto. No agrega un cambio de lnea al final del
texto. Interpreta de forma predeterminada los
caracteres de escape. Utiliza los mismos argumentos
que el printf del lenguaje C.
Read La sintaxis es: read var1 var2
Lee una lnea de la entrada estndar y la parte en
palabras separadas por el smbolo que indique la
variable IFS. Las palabras se asignan a var1, var2, etc. Si
hay ms palabras que variables, las ltimas palabras se
asignan a la ltima variable.
* Sustituye 0 (cero) ms caracteres
? Sustitucin de un solo carcter

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: $*
Ingeniera en Sistemas, UNAH
Sistemas Operativos
Elaborada por: Emilson Omar Acosta Girn
echo El script $0 recibe $# argumentos: $@

Operador Longitud

Nos permite obtener la longitud del valor de una variable. Tiene la forma ${#var} donde var es la
variable cuyo valor queremos medir, por ejemplo:

Var=hola --> 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
}

Sentencias Condicionales if, elif y else

If <condicin>
then
<sentencias>
elif <condicin>
then
<sentencias>
else
<sentencias>
fi
If <condicin>; then
<sentencias>
elif <condicin>; then
<sentencias>
else
<sentencias>
fi
If <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:


Ingeniera en Sistemas, UNAH
Sistemas Operativos
Elaborada por: Emilson Omar Acosta Girn
Test <condicin>
[ condicin ] --> El espacio entre la condicin y los corchetes ([ ]) es obligatorio, as como tambin entre
los operandos y el operador de comparacin (=, >=, <=).

Ejemplo:
Test variable1 = variable2
[ variable1 = variable2 ]

Operadores Lgicos

And (representado por && -a)
Or (representado por || -o)
Not (representado por !)

Comparacin de cadenas

Operador Verdadero si
Str1 = str2 Las cadenas son iguales
Str1 != str2 Las cadenas son distintas
Str1 < str2 Str1 es menor lexicogrficamente a str2
Str1 > str2 Str1 es mayor lexicogrficamente a str2
-n str1 Str1 es no nula y tiene longitud mayor a cero
-z str1 Str1 es nula (tiene longitud cero)

Comparacin de Enteros

Operador Descripcin
-lt Menor que
-le Menor o igual que
-eq Igual
-ge Mayor o igual que
-gt Mayor que
Ingeniera en Sistemas, UNAH
Sistemas Operativos
Elaborada por: Emilson Omar Acosta Girn
-ne 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
until < 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.

También podría gustarte