Manual de Shell Script
Manual de Shell Script
Manual de Shell Script
CONTENIDO
sigue:
$ ./ejemplo1
Descripcin
$ vi ejemplo1
Inicia el editor vi
#
# M i primer shell script
#
clear
Limpia la pantalla
Parmetros posicionales
Es posible escribir un shell script que tome un nmero
de parmetros desde la lnea de comandos, estas
opciones se las proporciona Linux al programa shell
como parmetros posicionales.
La forma de pasar estos comandos es con los
parmetros posicionales $1 hasta $9. Cada parmetro
corresponde a la posicin del argumento en la lnea de
comandos.
Variables de entorno
Creadas y mantenidas por Linux. Este tipo de variables son
definidas en LETRAS MAYUSCULAS.
Ejemplos de variables de entorno:
Descripcin
Variables de Entorno
BASH=/bin/bash
BASH_VERSION=1.14.7(1)
HOME=/home/sisope
Directorio home
LOGNAME=sisope
OSTYPE=Linux
Tipo de Os
PATH=/usr/bin:/sbin:/bin:/usr/sbin
Ruta establecida
PWD=/home/sisope/Jorge
SHELL=/bin/bash
USERNAME=sisope
ha
Variables
Built in
Descripcin
$#
$*
$@
$0
$$
$!
Variables de usuario
Para usar variables definidas por el usuario usar la
siguiente sintaxis: nombre_variable=valor
Por ejemplo:
nro=10
Entrecomillado
Unos cuantos caracteres se merecen una nota especial. Son las comillas
doble ( ), las comillas simples ( ) y el acento inverso ( ).
Comillas
Nombre
Descripcin
"
Comillas Dobles
Si
una
cadena
contiene
espacios incrustados, puede
acercar la cadena en unas
comillas dobles.
Resuelven todas las variables
dentro de una cadena.
'
Comillas Simples
Acento inverso
`
Ing. Jorge Jara
Expresiones aritmticas
El comando expr evala sus argumentos considerndolos como
una expresin y escribe el resultado sobre la salida estndar.
Sintaxis:
resta
multiplicacin *
Ejemplo 1:
divisin
resto
expr 13 + 49
echo `expr 6 + 3`
10
Ejercicios
Definir una variable vn con el valor jorge e imprimirlo por
pantalla.
Como definir dos variables x=40, y=8 y luego imprimir el
resultado de la divisin de x e y.
Modificar el ejercicio anterior y guardar el resultado de la divisin
de x e y en una variable z.
Crear un script que permita mostrar el nmero de parmetros,
nombre del script y los nombres de cada uno de los parmetros
posicinales pasados desde la lnea de comandos.
Elaborar un script que muestre en pantalla la hora actual, la
fecha, el nombre de inicio de sesion del usuario y el directorio
actual.
Ing. Jorge Jara
COMPARACIN DE EXPRESIONES
Comparacin de cadenas
Comparacin de nmeros
11
Comparacin de cadenas
Se pueden usar los siguientes operadores para comparar dos
expresiones de cadenas:
Operador
string1 = string2
Descripcin
string1 es igual a string2
-n string1
-z string1
Comparacin de nmeros
Se pueden usar los siguientes operadores para comparar dos
nmeros:
Operador
Matemtico
Descripcin
Uso de
test con el
comando if
Uso de [expr]
con el
comando if
-eq
5 == 6
if test 5 -eq 6
if [ 5 -eq 6 ]
-ne
5 != 6
if test 5 -ne 6
if [ 5 -ne 6 ]
-lt
5<6
if test 5 -lt 6
if [ 5 -lt 6 ]
-le
5 <= 6
if test 5 -le 6
if [ 5 -le 6 ]
-gt
5>6
if test 5 -gt 6
if [ 5 -gt 6 ]
-ge
5 >= 6
if test 5 -ge 6
if [ 5 -ge 6 ]
12
La declaracin if
La declaracin if evala una expresin para tomar una
decisin. Una condicin if tiene el siguiente formato:
if [ expresin ] ; then
Declaraciones
elif [ expresin ] ; then
Declaraciones
else
Declaraciones
fi
Ing. Jorge Jara
La declaracin case
Se puede usar una declaracin case en lugar de una
declaracin if si se tiene un gran nmero de condiciones.
case $nombre-variable in
patron1 | patron2)
Declaraciones;;
patron3 | patron4)
Declaraciones;;
*)
Declaraciones;;
esac
Ing. Jorge Jara
13
La declaracin for
La declaracin for dispone del siguiente formato:
La declaracin while
La declaracin while se puede usar para ejecutar una
serie de comandos mientras una condicin es verdadera
while [ condicin ]
do
declaraciones
done
14
Ejemplos
Escribir un script que permita determinar si un nmero es
positivo o negativo.
if [ $1 gt 0 ]
then
echo "$1 numero es positivo"
else
echo "$1 numero es negativo"
fi
15
Ejercicios
Escribir un shell script que permita sumar dos nmeros, los
cuales son pasados a travs de la lnea de comandos.
Escribir un script que imprima la siguiente lista de nmeros 5, 4,
3, 2, 1.
Escribir un script que imprima todos los divisores de un nmero
pasado como argumento.
16