next up previous
Next: Sub-Shells Up: Lo común a todos Previous: Los metacaracteres

Escribiendo Scripts

Podemos almacenar en un fichero un conjunto de comandos del shell y a continuación darle permisos para ejecución. Si hacemos esto, hemos escrito un script. A estos ficheros se les llama también programas de shell. Para ejecutar un script sólo deberemos teclear el camino hasta su nombre5.2 y a continuación pulsar la tecla return . Los script se utilizan para automatizar tareas que suelen ejecutarse de una forma más o menos regular y que por tanto pueden programarse. Cuando un script corre, el núcleo (kernel) del sistema operativo UNIX determina para que tipo de shell fue escrito (C Shell, Bourne Shell, etc). Esto lo hace examinando la primera línea del script. Las reglas usadas son:

Si el carácter # aparece en cualquier otra parte que no sea como primer carácter del script, será interpretado como inicio de comentario, elementos que siempre deben de existir si es que deseamos que el mantenimiento del sistema no se convierta en una pesadilla. Es recomendable, que si vamos a usar el C Shell como shell para ejecutar un script, comencemos la primera línea con la cadena #! y de esa forma indiquemos claramente cual es el shell usado para ejecutar el script. A continuación se describe dos ejemplos de construcción de scripts. El primero interpretado por el C Shell y el segundo por el Korn Shell:



width 3pt
width .3pt415ptgogh: > cat > script.csh (creamos el script)
# Este es un ejemplo de un script escrito para el C Shell.
echo -n La fecha de hoy es :
date    # imprimimos en pantalla (la salida estándar) la fecha de hoy.
^D
gogh: > cat > script.ksh (creamos el script)
#! /bin/ksh
# Este es un ejemplo de un script escrito para el Korn Shell.
echo -n La fecha de hoy es :
date    # imprimimos en pantalla (la salida estándar) la fecha de hoy.
^D
gogh: >chmod +x script.csh script.ksh (cambiamos los permisos para ejecución)
gogh: > ls -lF script.csh script.ksh
-rwxrwxr-   1 vi       wheel         154 Apr 24 17:07 script.csh*
-rwxrwxr-   1 vi       wheel         180 Apr 24 17:09 script.ksh*
gogh: > script.csh (ejecutamos el primer script)
La fecha de hoy es :Mon Apr 24 17:10:50 GMT 1995
gogh: > script.ksh
La fecha de hoy es :Mon Apr 24 17:11:01 GMT 1995
gogh: >
width .3pt
depth .3pt width -3pt

Como se puede observar en el ejemplo, lo primero que realizamos es ejecutar un Child Shell (shell hijo). Esto provoca que las instrucciones escritas en el script sean ejecutadas en un shell distinto al que lanzó el shell. Si este no se ejecuta en background, el Parent Shell (shell padre) duerme hasta que el script es ejecutado. Si el script se ejecuta en background, los dos shells se ejecutan simultáneamente.


next up previous
Next: Sub-Shells Up: Lo común a todos Previous: Los metacaracteres
Vicente González Ruiz
1998-07-13