Programando con bash
[pic]
9. Bourne Shell, tutorial en español
9.1 Creación de comandos y programas usando el shell
Además de usar el shell para ejecutar comandos, puedes usar su lenguaje de programación para escribir tus propios comandos o programas. Puedes poner comandos en el fichero (conocido como shell script) y después ejecutar el fichero como uncomando o programa.
EL Bourne shell (sh) está disponible en todos los sistemas UNIX. Los scripts del Bourne shell también pueden trabajar bajo el Bourne Again Shell (bash). Los shells C y TC usan un lenguaje de programación similar al lenguaje C.
9.2 Creación y ejecución de shell scripts simples
Para crear un shell script simple, debes poner líneas de comando en un fichero, ponle los permisosde acceso apropiados y después ejecuta el fichero.
EJEMPLO :
Este es el contenido de un shell script llamado display :
cat display
# Este script displaya la fecha, hora, nombre de
# usuario y directorio actual
echo "Fecha y hora:"
date
echo
echo "Tu usuario es: `whoami` \\n"
echo "Tu directorio actual es: \\c"
pwdLas primeras dos líneas que comienzan con una almohadilla (#) son comentarios y no son interpretadas por el shell. Usa comentarios para documentar tu shell script, te sorprenderá saber lo fácil que es olvidar lo que hacen tus propios programas.
Las backquotes (`) entre el comando whoami ilustran el uso de la sustitución de comandos.
- sustitución de comandos : para incluir la salida de uncomando dentro de una línea de comandos de otro comando, encierra el comando cuya salida quieres incluir, entre backquotes (`)
- whoami : displaya el usuario actual
\\n es una opción del comando echo que dice al shell que añada un retorno de carro al final de la línea. \\c dice al shell que permanezca en la misma línea.
(si utilizas el shell bash, para que funcionen estas opciones tienes que ponerecho -e )
Antes de usar el fichero como shell script debemos cambiar los permisos de acceso. Para dar permiso de ejecución al fichero deberemos usar el comando :
chmod u+rwx display
El +rwx después de la u te permiten leer, escribir y ejecutar el script, nadie mas tendrá permiso para hacerlo.
Para dar permiso a otros usuarios para leer y ejecutar el shell script usa :
chmod go+rx display9.3 Programación con Bourne Shell
El shell también te ofrece un entorno de programación con características similares a las de los lenguajes de programación de alto nivel.
Pasando argumentos al shell
Los shell scripts pueden actuar igual que los comandos standard de Unix y tomar argumentos desde la línea de comandos.
La forma de pasar estos comandos es con los parámetros posicionales $1hasta $9. Cada parámetro corresponde a la posición del argumento en la línea de comandos.
El parámetro posicional $0 hace referencia al nombre del comando o nombre del fichero ejecutable que contiene el shell script.
Solo se pueden pasar nueve argumentos, pero se puede acceder a mas de nueve usando el comando shift. Cada vez que se ejecuta el comando shift el argumento 1 desaparece, el 2 seconvierte en el uno, y así sucesivamente hasta el 9 que se convierte en el 8 quedando aquel libre.
Se puede hacer referencia a todos los parámetros que se están pasando usando el parámetro especial $*. Esto es especialmente útil cuando se pasan nombres de ficheros como argumentos, por ejemplo :
cat printps
# Este script convierte ficheros ASCII a PostScript
# y los envía a laimpresora PostScript ps1
# Usa la utilidad local "a2ps"
a2ps $* | lpr -Pps1
printps elm.txt vi.ref msg
Ejemplo de paso de argumentos :
cat first_5args
# Este script lista los cinco primeros argumentos
echo Los cinco primeros argumentos de la línea
echo de comandos son $1 $2 $3 $4 $5
first_5args mines a pint john o.k.
Manejo de...
Regístrate para leer el documento completo.