GRUPO 2 SCRIPTS
Todo lo que necesitas saber acerca de scripts en ubuntu
miércoles, 14 de noviembre de 2012
sábado, 10 de noviembre de 2012
Ejemplos para que los corras en tu pc!!
1. El siguiente programa es un juego en donde el ordenador a traves del comando date genera un numero, el cual luego es comparado por la respuesta que ingrese el usuario. El jugador tiene y tres intentos para adivinar dicho numero..
numerosecreto=$(( ((`date +%N` / 1000) % 100) +1 ))
clear
echo -e "Adivina el numero en tres intentos!!"
for i in 1 2 3
do
echo -e "\nIntento numero $i .."
echo -e "Estoy pensando en un numero entre 1 y 100...Adivina el numero."
read adivina
if [ "$adivina" = "" ]
then
echo "Debes ingresar un numero."
continue
elif [ "$adivina" = "$numerosecreto" ]
then
echo -e "\aSi! $adivina es la respuesta correcta!"
break
elif [ "$numerosecreto" -gt "$adivina" ]
then
echo "Mi numero es mas grande.."
else
echo "Mi numero es menor.."
fi
done
echo -e "\nEl numero en el que pensaba era $numerosecreto."
echo "Gracias por jugar!!"
miércoles, 7 de noviembre de 2012
5.6 El comando case
El comando incorporado al shell case se utiliza cuando existen muchas condiciones que probar.
Formato del Comando:
case value in
value1 )
Comando
Comando
;;
value2 )
Comando
Comando
;;
*)
Comando
;;
esac
El valor de una variable de case se compara con value1, value2, etcétera, hasta hallar una coincidencia.
Cuando un valor coincide con la variable de case, los comandos que siguen a ese valor se ejecutan hasta llegar a los punto y coma dobles (;;). Luego el control se dirige a toda la línea directamente después del enunciado esac.
Si el valor de una variable de case no coincide, el programa ejecuta los comandos después del valor por defecto *) hasta que se llega a los punto y coma dobles o hasta esac.
La figura muestra un ejemplo del uso del comando case.
En el ejemplo, el comando case evalúa la variable $answer. Por ejemplo, el resultado de tipear samplecase.sh n mostraría "You selected No" ("Usted seleccionó No").
El valor de la variable de case $answer se compara con cada valor del script de shell hasta hallar una coincidencia. Entonces el resultado se muestra en la pantalla.
5.5 El comando test
El comando condicional incorporado al shell test se utiliza a menudo para probar una o más condiciones que siguen al comando if.
El comando test evalúa una expresión, y si el resultado es verdadero, devuelve un estado de salida de cero. De otro modo el resultado es falso, y devuelve un estado de salida que no es cero.
La expresión compara normalmente dos números o dos cadenas para comprobar si los valores son idénticos. La expresión se utiliza también para probar el estado de un archivo.
Formato del Comando:
if test expresión o if [expresión]
then
ejecutar comando(s)
fi
En el ejemplo que figura a continuación, test evalúa la variable $answer para determinar si el usuario respondió "y" (de "yes" - sí) a la pregunta ("Clear the screen before listing files?" - "¿Despejar la pantalla antes de mostrar el listado de archivos?"). De ser verdadera, se despeja la pantalla y se muestra el contenido del directorio actual. De ser falsa, se muestra el contenido del directorio actual pero no se despeja antes la pantalla.
#!/bin/ksh
echo "Clear the screen before listing files?"
echo " enter y for Yes or n for No:\c"
read answer
if test "$answer" = y
then
clear;ls
else
ls
fi
El comando test se utiliza tan a menudo en los scripts de shell que los corchetes ([ ]) pueden utilizarse como alternativa a tipear "test". Por ejemplo, la línea "if test "$answer" = y" de más arriba también podría escribirse así: "if [ $answer = y ].
Nota: el signo != (no igual) puede utilizarse para probar si una cadena no es igual a otra.
Operadores del Comando Test
Casi todos los scripts de shell avanzados funcionan con archivos. El comando testpermite a los operadores probar el tipo de archivo, los permisos del archivo y si un archivo contiene o no determinados datos. La figura presenta una lista de los operadores de archivos utilizados más comúnmente con test.
El signo ! (bang) denega una prueba, de modo que [ ! -w archivo] denega [ -w archivo]. Por ejemplo, el siguiente script de shell filetest.sh acepta un nombre de archivo como argumento y luego lleva a cabo una cierta cantidad de pruebas para determinar los permisos de los archivos.
$ cat filetest.sh
#!/bin/ksh
if [ ! -f $1 ] #test: if the first file specified doesn't exists then echo message
then
echo "Sorry, file does not exist"
elif [ ! -r $1 ] #test: if the first file specified doesn't have read perms then echo message
then
echo "File is not readable"
elif [ ! -w $1 ]
then
echo "File is not writeable"
else
echo "File is both readable and writeable"
fi
martes, 30 de octubre de 2012
5.4 Comando if
Para ser de utilidad, un programa debe poder probar condiciones y tomar decisiones. El programa debe poder examinar el resultado de un comando y elegir entre dos o más cursos de acción. La prueba más simple es determinar si una condición es verdadera o falsa. Si la condición es verdadera, se ejecuta cualquier cantidad de comandos subsecuentes, de no ser así, se continúa con el script.
Los comandos que llevan a cabo ciertas tareas basadas en si una condición tiene éxito o falla se denominan comandos condicionales. Los tres comandos condicionales utilizados más frecuentemente son if, test, y case.
El condicional if
La forma más simple de un comando condicional es el comando if.
El comando if es un comando de shell incorporado que le permite al alumno probar una condición y luego cambiar el flujo de la ejecución de un script de shell basándose en el resultado de la prueba.
Existen tres formatos del comando if. El comando fi (if invertido) se coloca siempre al final de un condicional if.
El Formato del Comando if-then (si-entonces):
if el comando tiene éxito
then
ejecutar el/los comando(s)
fi
La Figura 1
muestra un ejemplo de un script de shell que utiliza el formato del comando if-then![]() |
| FIGURA 1 |
El Formato del Comando if-then-else (si-entonces-de lo contrario):
if el comando tiene éxito
then
ejecutar el/los comando(s)
else
ejecutar el/los comando(s)
fi
El Formato del Comando if-then-elif (else if)(si-entonces-de lo contrario si):
if el comando tiene éxito
then
ejecutar el/los comando(s)
elif el comando tiene éxito
then
ejecutar el/los comando(s)
else
ejecutar el/los comando(s)
fi
La Figura 2
muestra un ejemplo de un script de shell que utiliza el formato de comando if-then-elif.![]() |
| FIGURA 2 |
Cada vez que se completa la ejecución de un comando, dentro de un script o en la línea de comandos, éste devuelve un "estado de salida" al shell. El estado de salida es un valor numérico que indica si el comando se ejecutó con éxito.
Cada comando que se ejecuta tiene un estado de salida configurado por la persona que escribió el comando. Por lo general un estado de cero (0) significa que el comando se ejecutó exitosamente y cualquier valor que no sea cero significa que el comando falló. Los fallos pueden ser ocasionados por argumentos inválidos pasados al comando o por una condición de error que se ha detectado. El alumno deberá verificar las páginas man de un comando dado para determinar su estado de salida.
Al revisar el formato if-then que figura más arriba, el comando que sigue al enunciado if se ejecuta y se devuelve su estado de salida.
Si el estado de salida es 0 (cero), el comando tuvo éxito, y el comando o los comandos que siguen entre los enunciados then y fi se ejecutan. El fi termina el bloque if.
Si, no obstante, el primer comando se ejecuta y el estado de salida no es cero, esto significa que el comando falló. Cualquier cosa después del enunciado then se ignora y el control pasa directamente a la línea después del enunciado fi. Los fallos pueden ser ocasionados por argumentos inválidos que pasaron al programa por una condición de error que haya sido detectada.
La variable del shell $? es configurada automáticamente por el shell al estado de salida del último comando ejecutado. Se utiliza el comando echo para mostrar su valor.
La Figura
3 muestra cómo visualizar el estado de salida de una ejecución exitosa (estado de salida 0) y sin éxito (estado de salida 2) del comando mkdir.
3 muestra cómo visualizar el estado de salida de una ejecución exitosa (estado de salida 0) y sin éxito (estado de salida 2) del comando mkdir.5.3 Entrada interactiva
Para hacer más flexible y amigable con el usuario un script
de shell, el alumno puede colocar una pausa en el script y hacer que pida una
única línea de entrada. Esto se logra por medio del comando echo para pedir al alumno una entrada y
el comando read para hacer una pausa
y recibir entradas desde el teclado. Cualquier cosa que introduzca el alumno se
almacena en el nombre de variable especificado después del comando read. La
entrada interactiva es una funcionalidad muy potente de los scripts de shell.
El comando echo puede utilizarse en conjunción con un
carácter de escape para posicionar el cursor. Por ejemplo, \c posiciona el
cursor al final de la línea en lugar de en la línea siguiente. echo también
acepta otros caracteres de escape tales como:
\t - inserta una
tabulación
\n - inserta una
nueva línea
La Figura 1 muestra un ejemplo de un archivo script llamado
grepfor.sh que pide un patrón de búsqueda y un archivo que buscar. El patrón de
búsqueda introducido por el usuario es leído por el shell y se convierte en el
valor de la variable pattern (patrón). De igual manera, el nombre de archivo
introducido por el usuario es leído por el shell y se convierte en el valor de
la variable filename (nombre de archivo). En el ejemplo, la raíz es el patrón a
buscar y /etc/passwd es el archivo buscado.
![]() |
| Figura 1 |
Nota: para utilizar los caracteres de escape con el shell Bash el alumno debe utilizar echo -e. Por ejemplo, echo -e "Enter the pattern to search for: \c" ("Introducir el patrón a buscar: \c").
Si se especifica una única variable después del comando read, dicha variable contendrá la línea completa que introdujo el usuario. Si se especifican varias variables después del comando read, cada variable contendrá una única palabra como entrada del usuario. La Figura
2 muestra un ejemplo de un comando read con diversas variables
2 muestra un ejemplo de un comando read con diversas variables![]() |
| Figura 2 |
5.2 Parámetros Posicionales
Los parámetros posicionales son variables especiales
incorporadas que pueden proporcionar el nombre del archivo script o argumentos
al script mientras se ejecuta. Sus valores se toman de argumentos de la línea
de comandos. Se hace referencia a los parámetros posicionales de un script en
la forma $1, $2, $3, y así hasta $9.
$1 representa el
primer argumento de la línea de comandos, $2 representa el segundo argumento,
etcétera. Otras tres variables especiales son $0 que representa al comando o al
nombre del script, $* que representa a todos los argumentos introducidos en la
línea de comandos, y $# que representa la cantidad de argumentos de la línea de
comandos. La Figura1 presenta un resumen.
![]() |
| Figura 1 |
La Figura 2 muestra un ejemplo de un script de shell
denominado ppdemo.sh que utiliza parámetros posicionales. Los argumentos del
script se utilizan como variables cuando se ejecuta el script. La porción
superior de la figura muestra los contenidos del script de shell utilizando el
comando cat. La porción inferior muestra la ejecución del script a la vez que
se proporcionan tres argumentos o parámetros posicionales. El ejemplo asume que
el script ha sido hecho ejecutable.
![]() |
| Figura 2 |
5.1 Variables en los Scripts
Una variable es un placeholder (marcador de posición) para la información requerida por los procesos para que puedan funcionar apropiadamente. Una variable tiene un nombre y guarda un valor. Cambiar el valor de una variable es configurarla. Existen dos tipos de variables utilizados en scripts de shell, las variables de shell y las variables del entorno.
Las variables de shell son mantenidas por el shell y sólo son conocidas para el shell actual. Estas variables son variables locales y pueden visualizarse por medio del comando set. Las variables del entorno son variables conocidas para el shell actual y todos los shells hijos o subshells. Algunos ejemplos de variables del entorno predefinidas son:
* El shell de login (SHELL)
* El nombre de login (LOGNAME)
* La ruta de búsqueda que se utiliza para buscar comandos (PATH)
* Las configuraciones de terminal (TERM)
Las variables del entorno pueden mostrarse por medio del comando env.
Las variables locales se configuran utilizando el formato VARIABLE=valor. Por ejemplo, BACKUPDIR =/home/user2/myfiles configura la variable denominada BACKUPDIR (backup directory - copia de seguridad del directorio) como igual al valor de /home/user2/myfiles. Los nombres de las variables van en mayúscula por convención pero también pueden ir en minúscula. Utilice el comando echo para mostrar el valor de una variable. La figura ilustra cómo configurar y mostrar la variable BACKUPDIR. El signo de dólar antes de un nombre de variable instruye al shell para que utilice el valor de la variable. De otro modo, echo BACKUPDIR, sin el signo de dólar daría como resultado la cadena de texto BACKUPDIR, como se ilustra en el último ejemplo.
Las variables también pueden configurarse para que sean igual al resultado de un comando. Por ejemplo, DATE=`date` asignaría el valor de la fecha actual a la variable DATE. Cuando ha de mostrarse una variable, los acentos graves (`) indican al shell que utilice la fecha actual en lugar de la palabra "date". Los acentos graves y otros caracteres de encomillado se trataron anteriormente en este capítulo.
La ventaja de una variable es que una vez configurada puede hacerse referencia a ella muchas veces a lo largo de un script. Si el valor de la variable se cambia entonces todas las veces que se hace referencia a ella se utilizará el nuevo valor y no hacen falta otras modificaciones.
5. Scripts de Shell Avanzados
DESCRIPCIÓN GENERAL
Incorporado a cada shell hay un lenguaje de programación
completo que consiste en comandos y construcciones que pueden utilizarse para
crear scripts más complejos, que van más allá de hacer simplemente una lista de
una serie de comandos.
Además de contener comandos de programación de shell
incorporados tales como if, else, read, case, while, y exit, los scripts complejos utilizan variables predefinidas y
definidas por el usuario. La figura es un ejemplo de un script de shell más
complejo que contiene comandos y variables de shell.

4. Como hacer debugging de un script
Un problema común al escribir scripts de shell es que el
shell no interpreta el comando de la manera en la cual lo espera el usuario. El
alumno puede utilizar los comandos ksh
o bash con las opciones -x (echo - eco)
y -v (verbose - "elocuente") para ayudar a identificar en qué parte
del script se encuentran los problemas. La Figura 1 muestra el resultado de un script llamado
debug1 ejecutado con la opción ksh -x. La opción -x muestra cada línea tras
haber sido identificada por el shell y coloca un signo más (+) tras haber
ejecutado cada línea. Las líneas que se encuentran debajo de ellas muestran el
resultado de los comandos.
![]() |
| Figura 1 |
La Figura 2 muestra el resultado del script debug1 ejecutado
con la opción ksh -v. La opción -v es similar a la opción -x excepto en que
muestra los comandos antes de efectuar la sustitución de las variables y los
comandos.
![]() |
| Figura 2 |
Juntas, las opciones -x y -v permiten al alumno observar
cada línea del archivo script antes y después de que sean ejecutadas más el
resultado. Esto es de mucha ayuda al señalar en qué parte del script se
encuentra el problema. La Figura 3 muestra el resultado del script debug1
ejecutado con las opciones ksh -xv.
![]() |
| Figura 3 |
sábado, 27 de octubre de 2012
3.2 Como hacer ejecutables los archivos Scripts
En un inicio cuando un script es creado, el sistema le asigna a éste los permisos de un archivo, esto es permisos 664 en modo octal o asu vez -rx- rx- r-- en modo simbólico.
Para hacer al script un archivo ejecutable entonces debemos asignarle los permisos de ejecución respectivos a los grupos deseados. Es necesario asignarle el permiso al grupo usuario, de este modo lo podremos ejecutar nosotros, ademas si queremos que la ejecución del script este disponible para nuestros grupos u otros entonces también debemos asignarle este permiso.
Para dicha acción de cambiar o asignar permisos se tiene a disposición el comando chmod (change mode).
COMANDO chmod
Permiso
r lectura
w escritura
x ejecución
Modo octal o numérico
SINTAXIS:
chmod modo_octal nombre_script.sh
Modo octal Permiso
Usuario Grupo Otros
775 rwx rwx r-x
755 rwx r-x r-x
Modo simbolico o relativo
SINTAXIS:
chmod modo nombre_script.sh
Modo Permiso
Usuario Grupo Otros
ugo + x rwx rwx r-x
g - w rw- r-- r--
ugo + x rwx r-x r-x
Para hacer al script un archivo ejecutable entonces debemos asignarle los permisos de ejecución respectivos a los grupos deseados. Es necesario asignarle el permiso al grupo usuario, de este modo lo podremos ejecutar nosotros, ademas si queremos que la ejecución del script este disponible para nuestros grupos u otros entonces también debemos asignarle este permiso.
Para dicha acción de cambiar o asignar permisos se tiene a disposición el comando chmod (change mode).
COMANDO chmod
Permiso
r lectura
w escritura
x ejecución
Modo octal o numérico
SINTAXIS:
chmod modo_octal nombre_script.sh
Modo octal Permiso
Usuario Grupo Otros
775 rwx rwx r-x
755 rwx r-x r-x
Modo simbolico o relativo
SINTAXIS:
chmod modo nombre_script.sh
Modo Permiso
Usuario Grupo Otros
ugo + x rwx rwx r-x
g - w rw- r-- r--
ugo + x rwx r-x r-x
Despues de haber dado los permisos deseados a los respectivos grupos entonces el script podra ser ejecutado con tan solo scribir en la terminal el nombre del script, de este modo: nombre_script.sh
3.1 Ejecucion de Scripts por medio ksh o bash
El comando ksh
Es la abreviación de Korn shell, su función es la de interpretar ordenes linea por linea, de este modo es usado como lenguaje de programación.
El comando bash
Bash ademas de ser la ruta de accesocompleta para una linea dentro del shell, es un intrepretador de comandos.
SINTAXIS:
ksh [-opciones..] nombre_script.sh
bash [-opciones..] nombre_script.sh
Los corchetes significan que el parámetro es opcional.
OPCIONES:
x(echo) Muestra cada linea después de haber sido
interpretada por el shell y coloca un signo
+ después de haber ejecutado cada linea.
v (verbose) Muestra los comandos antes de efectuar la
sustitución de variables y comandos.
Es la abreviación de Korn shell, su función es la de interpretar ordenes linea por linea, de este modo es usado como lenguaje de programación.
El comando bash
Bash ademas de ser la ruta de accesocompleta para una linea dentro del shell, es un intrepretador de comandos.
SINTAXIS:
ksh [-opciones..] nombre_script.sh
bash [-opciones..] nombre_script.sh
Los corchetes significan que el parámetro es opcional.
OPCIONES:
x(echo) Muestra cada linea después de haber sido
interpretada por el shell y coloca un signo
+ después de haber ejecutado cada linea.
v (verbose) Muestra los comandos antes de efectuar la
sustitución de variables y comandos.
3. Ejecución de un Script de Shell
En este capitulo usted aprenderá las formas de como hacer ejecutable y ejecutar un script.
La ejecución de un script de shell se inicia en un subshell del la ventana del shell actual de trabajo.
Se debe recordar que un script es un archivo creado por el usuario que inicialmente tendrá los permisos por defecto 644.
Existen dos formas de ejecutar un script desde el shell.
1. Mediante los comandos ksh o bash
2. Asignando al script el permiso de ejecución
La ejecución de un script de shell se inicia en un subshell del la ventana del shell actual de trabajo.
Se debe recordar que un script es un archivo creado por el usuario que inicialmente tendrá los permisos por defecto 644.
Existen dos formas de ejecutar un script desde el shell.
1. Mediante los comandos ksh o bash
2. Asignando al script el permiso de ejecución
6.2 El comando While-do
El bucle while ejecuta repetidamente un grupo de comandos dentro del cuerpo de un bucle hasta que la condición de prueba de la expresión se hace falsa. En otras palabras, mientras la expresión sea verdadera, ejecuta estos comandos.
Formato del Comando:
while condición
do
Comandos
done
Ejm1:
Script que permite ingresar un nombre de usuario, y ver si éste está loggeado.
#!/bin/bash
echo "Ingrese l nombre de un usuario: "
read name
while who | grep $name
do
echo "$name está loggeado"
sleep 5
exit
done
echo "$name no está loggeado"
Nota: En el caso que el usuario si esté loggeado, la condición seria siempre verdadera por lo que el bucle sería infinito. Esta es la razón por la cuál se utiliza el comando exit.
El comando "sleep" demora la ejecución del comando exit, "sleep 5" demorará 5 segundos en que el comando exit se ejecute.
Formato del Comando:
while condición
do
Comandos
done
Ejm1:
Script que permite ingresar un nombre de usuario, y ver si éste está loggeado.
#!/bin/bash
echo "Ingrese l nombre de un usuario: "
read name
while who | grep $name
do
echo "$name está loggeado"
sleep 5
exit
done
echo "$name no está loggeado"
Nota: En el caso que el usuario si esté loggeado, la condición seria siempre verdadera por lo que el bucle sería infinito. Esta es la razón por la cuál se utiliza el comando exit.
El comando "sleep" demora la ejecución del comando exit, "sleep 5" demorará 5 segundos en que el comando exit se ejecute.
jueves, 25 de octubre de 2012
6.1 El comando For-do
El bucle for ejecuta una lista de comandos una vez para cada valor de variable de bucle.
Formato del Comando:
for variable in
list
do
Comandos
done
Otro formato:
for (( expr1; expr2; expr3 ))
do
comandos
done
Ejemplos:
Ejm1
#!/bin/bash
# ejemplo de uso del lazo for
for (( i = 0 ; i <= 5; i++ ))
do
echo "hola número $i "
done
Ejm 2
#!/bin/bash
#uso del lazo for con la sintáxix básica, es decir evaluando elementos de la lista
for i in 1 2 3 4 5
do
echo "hola $i "
done
Formato del Comando:
for variable in
list
do
Comandos
done
Otro formato:
for (( expr1; expr2; expr3 ))
do
comandos
done
Ejemplos:
Ejm1
#!/bin/bash
# ejemplo de uso del lazo for
for (( i = 0 ; i <= 5; i++ ))
do
echo "hola número $i "
done
Ejm 2
#!/bin/bash
#uso del lazo for con la sintáxix básica, es decir evaluando elementos de la lista
for i in 1 2 3 4 5
do
echo "hola $i "
done
6. Bucles
Se puede utilizar bucles para controlar el flujo de ejecución de un script. Un bucle repite una secuencia de instrucciones hasta satisfacer una condición predeterminada.
A menudo un script tiene que ver con llevar a cabo la misma operación o conjunto de operaciones de cada archivo en un directorio o lista, cada línea de un archivo, o cada palabra de una línea. El shell proporciona tres construcciones de bucle para lograr este tipo de acción: el bucle for, el bucle while y el bucle until.
miércoles, 24 de octubre de 2012
Cronograma
TEMA FECHAS LIMITES
1. descripcion general de scripts 28/10/2012
1.1 comando echo 28/10/2012
1.2 comando read 28/10/2012
2. creacion de un archivo script simple 28/10/2012
3. Ejecucion de un script de shell 28/10/2012 3.1 Ejecucion de script de shell por medio de los
comandos ksh y bash 28/10/2012
3.2 Como hacer ejecutables los archivos Script 28/10/2012
4. Como hacer Debugging de un Script 30/10/2012
5. Scripts de Shell avanzdos 30/10/2012
5.1 Variables en los Scripts 30/10/2012
5.2 Parametros Posicionales 30/10/2012
5.3 Entrada activa 31/10/2012
5.4 Comando If 31/10/2012
5.5 Comando test 31/10/2012
5.6 Comando case 31/10/2012
6. Bucles
Lazo For -do 25/10/2012
Lazo while-do y ejemplos. 27/10/2012
Lazo until y ejemplos. 28/10/2012
Ejercicios propuestos. 01/11/2012
2. Creación de un Script de Shell Simple
La creación de un script de shell se resume en los siguientes pasos:
1. Decidir la función que el script va a efectuar
2. Hacer una lista de comandos que se introducirán en el
script.
3. Crear un nuevo archivo para el script
4. Identificar el shell que utilizara el script
5. Agregar comandos y comentarios
6. Guardar el archivo script
7. Hacer ejecutable el archivo script
8. Tipear el nombre del script para ejecutarlo
9. Hacer debug y modificar el script si tiene algún error
1. Decidir la función que el script va a efectuar
En esta parte se tendra que analizar que es lo que se quiere
realizar con el script.
2. Hacer una lista de comandos que se introducirán en el
script
Aqui se eligiran los comandos a utilizarse para poder
efectuar las funciones a realizarse.
Algunos de los comandos que pueden hallarse normalmente en
scripts de shell simples incluyen:
3. Crear un nuevo archivo para el script
Se tiene que elegir un editor de texto para la creación de
este archivo. Posteriormente se debe elegir un nombre para
el script evitando la utilización de nombres propios o alias
de Unix ya existentes dentro del sistema.
Nombres como backup.sh son nombres que se deben evitar ya
que estos tienen funciones especificas dentro del shell.
Es recomendable después de haber tipeado el nombre poner
.sh , ya que de este modo el archivo sera fácilmente
identificable como un script.
Los archivos script pueden ser guardados en el directorio
home del usuario, pero también se los puede colocar en el
directorio ~/bin que se encuentra como subdirectorio de
home. Si los archivos son guardados en ~/bin, se deberá
modificar la variable PATH, para asegurar que el directorio
~\bin se encuentre en la ruta de búsqueda del shell.
4. Identificar el shell que utilizara el script
El usuario debe introducir #!/bin/ksh o #!/bin/bash en la
primera línea del script. Es importante que empezar la linea
con "#!" ya que asi el script nolo reconocera como comando a
ser ejecutado.
5. Agregar comandos y comentarios
Se utilizan los comandos de la lista del paso 2 y se agregan
comentarios con el comando echo.
Los comentarios se utilizan a lo largo de un script complejo
para explicar secciones del mismo y son valiosos para
cualquiera que intente interpretar y hacer un debug del
script.
6. Guardar el archivo script
Se guarda el archivo ya creado y finalmente cerramos el
editor utilizado.
EJEMPLO:
#!\bin\bash
#Código que muestra información importante del terminal
#Este comando nos mostrara el directorio actual de trabajo
echo \"Directorio actual:\"
pwd
#Limpiamos la pantalla
clc
echo \"Usuario actualmente en el sistema:\"
who
Los pasos 7, 8 y 9 se explicaran posteriormente.
1. Decidir la función que el script va a efectuar
2. Hacer una lista de comandos que se introducirán en el
script.
3. Crear un nuevo archivo para el script
4. Identificar el shell que utilizara el script
5. Agregar comandos y comentarios
6. Guardar el archivo script
7. Hacer ejecutable el archivo script
8. Tipear el nombre del script para ejecutarlo
9. Hacer debug y modificar el script si tiene algún error
1. Decidir la función que el script va a efectuar
En esta parte se tendra que analizar que es lo que se quiere
realizar con el script.
2. Hacer una lista de comandos que se introducirán en el
script
Aqui se eligiran los comandos a utilizarse para poder
efectuar las funciones a realizarse.
Algunos de los comandos que pueden hallarse normalmente en
scripts de shell simples incluyen:
* Comandos de manipulación de archivos tales como:
ls, mv, cp,
y rm
* Comandos de procesamiento de archivos tales como:
grep, sort, yfind
* Comandos de copiado de seguridad tales como tar y jar
* El comando echo, echo string y echo
$VARIABLE
* Otros, tales como los comandos date, clear, who y cal.
Además, es común que los scripts de shell incluyan pipes y
redireccionamiento, comandos como: clear, who y cal, son
comandos también utilizados que el script podrá ejecutar.
3. Crear un nuevo archivo para el script
Se tiene que elegir un editor de texto para la creación de
este archivo. Posteriormente se debe elegir un nombre para
el script evitando la utilización de nombres propios o alias
de Unix ya existentes dentro del sistema.
Nombres como backup.sh son nombres que se deben evitar ya
que estos tienen funciones especificas dentro del shell.
Es recomendable después de haber tipeado el nombre poner
.sh , ya que de este modo el archivo sera fácilmente
identificable como un script.
Los archivos script pueden ser guardados en el directorio
home del usuario, pero también se los puede colocar en el
directorio ~/bin que se encuentra como subdirectorio de
home. Si los archivos son guardados en ~/bin, se deberá
modificar la variable PATH, para asegurar que el directorio
~\bin se encuentre en la ruta de búsqueda del shell.
4. Identificar el shell que utilizara el script
El usuario debe introducir #!/bin/ksh o #!/bin/bash en la
primera línea del script. Es importante que empezar la linea
con "#!" ya que asi el script nolo reconocera como comando a
ser ejecutado.
5. Agregar comandos y comentarios
Se utilizan los comandos de la lista del paso 2 y se agregan
comentarios con el comando echo.
Los comentarios se utilizan a lo largo de un script complejo
para explicar secciones del mismo y son valiosos para
cualquiera que intente interpretar y hacer un debug del
script.
6. Guardar el archivo script
Se guarda el archivo ya creado y finalmente cerramos el
editor utilizado.
EJEMPLO:
#!\bin\bash
#Código que muestra información importante del terminal
#Este comando nos mostrara el directorio actual de trabajo
echo \"Directorio actual:\"
pwd
#Limpiamos la pantalla
clc
echo \"Usuario actualmente en el sistema:\"
who
Los pasos 7, 8 y 9 se explicaran posteriormente.
1.2 Comando read
El comando read es de mucha ayuda dentro del desarrollo de scripts que necesiten que el usuario introduzca algún tipo de parámetro o dato.
Durante la ejecución de un script, si este encuentra una linea de comando que tenga el comando read seguido de un nombre de variable, dicha ejecución se detendrá y en pantalla se mostrara el cursor parpadeando en espera de que se introduzca el valor de la variable, este valor a continuación sera almacenado por la shell como el valor de la variable.
EJEMPLO:
#!/bin/bash
#uso de read
echo "Cual es tu edad?"
read edad
echo "Hola $nombre"
En este ejemplo se puede observar que al pedir el ingreso de la edad utilizamos read edad. Hay que fijarse bien que para que el shell entienda la orden y pueda mostrar la edad ingresada con el comando echo es necesario preceder a la variable edad de un signo de dinero ($), de esta forma $edad.
El comando read también puede ser usado para pedir el ingreso de múltiples variables dentro de la misma linea de comando.
EJEMPLO:
#!/bin/bash
#uso de read con varios parametros de ingreso
echo "Ingresa tu primer nombre seguido de tu primer apellido"
read nombre apellido
echo "Tu nombre es $nombre $apellido"
Durante la ejecución de un script, si este encuentra una linea de comando que tenga el comando read seguido de un nombre de variable, dicha ejecución se detendrá y en pantalla se mostrara el cursor parpadeando en espera de que se introduzca el valor de la variable, este valor a continuación sera almacenado por la shell como el valor de la variable.
EJEMPLO:
#!/bin/bash
#uso de read
echo "Cual es tu edad?"
read edad
echo "Hola $nombre"
En este ejemplo se puede observar que al pedir el ingreso de la edad utilizamos read edad. Hay que fijarse bien que para que el shell entienda la orden y pueda mostrar la edad ingresada con el comando echo es necesario preceder a la variable edad de un signo de dinero ($), de esta forma $edad.
El comando read también puede ser usado para pedir el ingreso de múltiples variables dentro de la misma linea de comando.
EJEMPLO:
#!/bin/bash
#uso de read con varios parametros de ingreso
echo "Ingresa tu primer nombre seguido de tu primer apellido"
read nombre apellido
echo "Tu nombre es $nombre $apellido"
1.1 Comando Echo
Echo es uno de los comandos mas utilizados dentro de un script de shell, su función es la de mostrar en pantalla una cadena de caracteres.
Su sintaxis es:
echo [opciones] [cadena]
OPCIONES:
-n Suprime el caracter de nueva linea final
-e Activa la interpretación de los caracteres alternativos
listados debajo
-E Desactiva la interpretación de secuencias de cadena
Sin -E, las siguientes secuencias con reconocidas
\NNN el caracter cuyo codigo ASCII es NNN (octal)
\a alerta (BEL)
\\ barra inversa
\b retorno
\c suprime el caracter de nueva linea final
\f salto de pagina
\n nueva linea
\r retorno de carro
\t tabulacion horizontal
\v tabulacion vertical
EJEMPLO:
1. Comando echo
echo \"La vida es Bella\"
El comando mostrara: La vida es Bella
2. Para usar el retorno
echo -e \"La vida es \bBella\"
El comando eliminara el espacio y se mostrara:
La vida esBella
3. Para usar el espacio de tabulacion en el comando echo
echo -e \"La\tvida\tes\tBella\"
El comando mostrara:
La vida es Bella
OPCIONES:
-n Suprime el caracter de nueva linea final
-e Activa la interpretación de los caracteres alternativos
listados debajo
-E Desactiva la interpretación de secuencias de cadena
Sin -E, las siguientes secuencias con reconocidas
\NNN el caracter cuyo codigo ASCII es NNN (octal)
\a alerta (BEL)
\\ barra inversa
\b retorno
\c suprime el caracter de nueva linea final
\f salto de pagina
\n nueva linea
\r retorno de carro
\t tabulacion horizontal
\v tabulacion vertical
EJEMPLO:
1. Comando echo
echo \"La vida es Bella\"
El comando mostrara: La vida es Bella
2. Para usar el retorno
echo -e \"La vida es \bBella\"
El comando eliminara el espacio y se mostrara:
La vida esBella
3. Para usar el espacio de tabulacion en el comando echo
echo -e \"La\tvida\tes\tBella\"
El comando mostrara:
La vida es Bella
Suscribirse a:
Comentarios (Atom)












