Está en la página 1de 5

Ingeniera en Sistemas, UNAH

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

Elaborada por: Emilson Omar Acosta Girn

Ingeniera en Sistemas, UNAH


Sistemas Operativos
;
IFS

Echo
opciones:
-e ejemplo: echo e
Printf

Read

*
?

Se usa como separador de comandos


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.
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
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.
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: $*

Elaborada por: Emilson Omar Acosta Girn

Ingeniera en Sistemas, UNAH


Sistemas Operativos
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>
else
<sentencias>
fi

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:

Elaborada por: Emilson Omar Acosta Girn

Ingeniera en Sistemas, UNAH


Sistemas Operativos
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

Elaborada por: Emilson Omar Acosta Girn

Ingeniera en Sistemas, UNAH


Sistemas Operativos
-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.

Elaborada por: Emilson Omar Acosta Girn

También podría gustarte