PDF de programación - Introduccion a Shell Script

Imágen de pdf Introduccion a Shell Script

Introduccion a Shell Scriptgráfica de visualizaciones

Publicado el 6 de Agosto del 2017
1.331 visualizaciones desde el 6 de Agosto del 2017
318,6 KB
15 paginas
Creado hace 18a (29/11/2005)
Introduccion a Shell Script Antonio Becerro Martinez. 2005.

INTRODUCCION A
SHELL SCRIPT

Introduccion a Shell Script Antonio Becerro Martinez. 2005.

1. INTRODUCCION.

Shell que significa en Castellano “concha” es el interprete de comandos del sistema. Es una
interfaz de texto de altas prestaciones, que sirve fundamentalmente para tres cosas: administrar
el sistema operativo, lanzar aplicaciones (e interactuar con ellas) y como entorno de
programación. Gnu/Linux se administra editando ficheros configuración. Como norma general, se
encuentran en: /etc, dentro de direcciones específicos para cada aplicación. Por ejemplo, Lilo
(Linux Loader) se configura editando el fichero: /etc/lilo/lilo.conf. Los programas, se ejecutan
escribiendo el nombre del ejecutable, si este se encuentra en el path (ruta por defecto para los
mismos, normalmente: /usr/bin) o escribiendo el nombre del ejecutable precedido por: ./, desde
el directorio donde se encuentren. Todo esto, es bien conocido por cualquier usuario de Shell. No
tan conocidas son sus capacidades como entorno de programación. Los programas de Shell no
necesitan compilarse. La Shell los interpreta linea a linea. Se les suele conocer como Shells
Scripts y pueden ser desde sencillas ordenes hasta complejas series de instrucciones para el
arranque del propio sistema operativo. En general, tienen una sintaxis bastante clara y suponen
un buen punto de partida para dar los primeros pasos en el mundo de la programación.
Yo no soy ningún experto programador. De hecho, estoy aprendiendo ahora mismo. Es un
mundo apasionante, pero un poco oscuro a veces. Entonces, si no soy un especialista en el tema,
¿Como me atrevo a escribir sobre ello? Bueno, tengo mis motivos. Verán, me considero un buen
comunicador, y creo que mi forma de contar las cosas puede ser útil a los demás. Ello me anima
a preparar tutoriales como estos, y a publicarlos en Internet.

2. ¿Como se edita un script de Shell?

El enfoque de este trabajo es práctico. En lugar de mostrar el funcionamiento de cada comando,
vamos a ver ejercicios concretos que sean apropiados para la administración de nuestro sistema.
Los scripts de Shell son extremadamente útiles. Es buena idea escribir aquellas necesidades
que tengamos y luego editar scripts que realicen este trabajo por nosotros. A estas alturas, ya
es hora de preguntarse que es exactamente un script. Es un archivo de texto, que contiene una
serie de comandos para shell, que el sistema ejecuta ordenadamente, de arriba abajo. Para
editarlos, tan solo hace falta un editor de textos, como Emacs, o Vi. Se guardan con extensión:
.sh y se ejecutan desde la Shell mediante el comando: sh nombre de script.sh. Los scripts,
se comportan de igual manera que los comandos de la shell.
Bueno, ya va siendo hora de que pasemos a la práctica. El primer paso para trabajar con una
Shell es ejecutar una shell. Esto que parece una perogrullada tiene su razón de ser. En algunas
distribuciones de Gnu/Linux muy enfocadas al usuario finál, la shell está bastante escondida.
Normalmente, se llama: Konsole, terminal, terminal de X, o algo similar. Se suele incluir en el
menú k de Kde, en el apartado sistema. Otra opción es utilizar una consola virtual. Mediante:
Ctrl alt f1, o f2, o f3 hasta f6, podemos utilizar entornos shell, sin interfaz gráfica. Es
importante saber, que los programas basados en el entorno X, lógicamente no funcionan. La
Shell más utilizada en Gnu/Linux es Bash, aunque existen otras, como ksh o C Shell. Este
tutorial está enfocado a Bash.

3. PASAMOS A LA ACCION.

Supongamos que evitamos el arranque automático del escritorio gráfico. Esto es bastante
simple. Solamente hay que cambiar de nombre o comentar el fichero: gdm, kdm o xdm. Esto
depende de nuestro sistema. Kdm está vinculado a Kde, Gdm a Gnome, y Xdm a cualquiera de
ellos. Los programas que inician el sistema operativo son también scripts. Se encuentran en el
directorio: /etc/init.d. Hecho esto, el sistema arranca en modo de texto. para lanzar el servidor
gráfico:

startx ruta al escritorio -- : número de nivel de ejecución



Introduccion a Shell Script Antonio Becerro Martinez. 2005.

Aparte de Kde y Gnome, son bastante utilizados windowmaker, icewm y enlightement,
entre otros. Si una vez ejecutado el escritorio, abandonamos la sesión, volvemos a la linea de
comandos. Desde aquí, podemos preparar nuestros scripts. Veamos algunas ideas. Podríamos
hacer uno que mostrase un menú para ejecutar el escritorio que queramos. Veamos, lo podemos
llamar escritorio.sh. Lo editamos, este es el contenido:

clear
echo “MENU”
echo “====”
echo “1. Iniciar kde.”
echo “2. Iniciar Gnome.”
echo “3. Iniciar Windowmaker.”
echo “4. Iniciar enlightement.”

echo “Elige opción”
read entrada1
case $entrada1 in
1)
startx kde
;;
2)
startx gnome
;;
3)
startx windowmaker
;;
4)
startx enlightement
;;
esac

Y ahora veamos como funciona. El comando clear (primera linea), limpia la pantalla. El
comando “echo” muestra lo que escribamos a continuación entre comillas dobles. Las linea dos a
la ocho dan lugar a un menú, que sirve para escoger el escritorio que queramos lanzar. Para ello,
el usuario tiene que escribir un numero, entre 1 y 4. A continuación, vemos el comando “read”.
Este, lee la respuesta del usuario, y la guarda como la variable: entrada1. Ahora se utiliza la
estructura “case”. Esta, permite realizar de una forma bastante sencilla, varios if anidados. La
estructura if fi, consiste en evaluar condiciones: “si tal cosa es de tal forma, entonces haz esto.
En caso contrario esto otro”. Mediante “case” nos ahorramos bastante texto. La sintaxis es la
que se puede ver en el ejemplo. Empieza por case “$variable” in. Luego, en la siguiente linea:
1) Es para referirse al valor: 1 , que en este caso es “iniciar Kde”. El resto son las entradas para
los demás escritorios. Cada una de ellas termina obligatoriamente con los caracteres: ;;
Finalmente, para cerrar la estructura se escribe: esac, que no es otra cosa sino case, escrito al
revés.

No es muy complicado. De esta forma, se pueden hacer muchas cosas. Por ejemplo, un script
que nos sirva para apagar la máquina, rebotarla, etc. De hecho, si solemos utilizar mucho la
consola, unos cuantos scripts de este tipo, nos evitará el estar escribiendo siempre lo mismo.
Veamos otro ejercicio diferente. Es una calculadora. Es muy simple, solo sabe sumar, restar,
multiplicar y dividir. Pero también es muy fácil de escribir y de utilizar. Ilustra bien el uso de
variables.

Introduccion a Shell Script Antonio Becerro Martinez. 2005.


echo “soy Gnu/Cal”
echo “Tu me dices lo que quieres calcular y yo te doy el resultado”
echo “Introduce el primer valor”
read valor1
echo “ Introduce el operador. Puedes escoger entre: + - * /”
read operador
echo “ Introduce el segundo valor”
read valor2
echo “El resultado es:”
sleep 2

expr $valor1 $operador $valor2

sleep 1
echo “gracias por su tiempo!”



Las tres primeras lineas son, por así decirlo, de presentación. En la cuarta linea hay un read,
llamado valor1. Es una variable, que va a introducir desde el teclado el usuario. Después, es
necesario saber que operación se quiere realizar (suma, resta, multiplicación o división). Para ello
hay un nuevo read, llamado “operador” para que el usuario pueda escoger. Después, tenemos
el segundo valor de la operación llamado “valor2”. El comando “sleep” lo único que hace es
esperar un poco de tiempo para que de la sensación de que el programa esta pensando poco
antes de dar el resultado. La operación matemática propiamente dicha se realiza en la linea 11.
El comando es: expr. Como puede verse, opera directamente con los valores que hayan tomado
las tres variables implicadas. Este tipo de estructura, es muy fácil de comprender (por eso forma
parte del ejercicio) pero no es completamente funcional. Como veremos más tarde, hay otras
formas de programar una calculadora. El mayor problema que presenta esta, es la operación
multiplicación. El símbolo: * no es válido, porque está reservado para el sistema operativo.

Veamos ahora otro ejemplo. Se llama: trivial.sh, y es el típico juego de preguntas y respuestas.
Solo tiene dos preguntas, pero es suficiente para ver como funciona. Está construido, sobre la
estructura if fi. El programa conoce la respuesta correcta y evalúa la respuesta del usuario. Si
acierta una pregunta se lo dice y pasa con la siguiente pregunta. Si acierta todas las preguntas le
da el titulo de “magister del universo”.

#!/bin/bash
clear
echo "Bienvenidos a GnuTrivial."
sleep 2
echo "Soy el típico juego de preguntas y respuestas."
sleep 2
echo "Si aciertas todas las preguntas, te concedere el titulo de magister del universo."
echo "¿Como se llamaba el ultimo emperador Romano de occidente, claudio, teodosio
o romulo."
read respuesta1
if test $respuesta1 = romulo
then
echo "Respuesta correcta."
else
echo "Lo siento, la respuesta correcta es: romulo."
fi
sleep 2
echo "Pasemos a la siguiente pregunta. ¿Qué célebre filosofo Griego tuvó por discipulo
a Alejandro Magno, platón, aristoteles o zenon?"
read respuesta2
if test $respuesta2 = aristoteles

Introduccion a Shell Script Antonio Becerro Martinez. 2005.

then
echo "respuesta correcta."
else
echo "Lo siento, la respuesta correcta es: Aristoteles."
fi
if test $respuesta1 = romulo
test $respuesta2 = aristoteles
then
echo "Eres un pequeño magister del universo."
fi

Como puede apreciarse, la estructura if fi, y la estructura case
  • Links de descarga
http://lwp-l.com/pdf6103

Comentarios de: Introduccion a Shell Script (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad