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..


#!/bin/bash
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
Estado de Salida
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.

Al escribir scripts de shell el alumno puede agregar exit 0 ("salida 0") al final del script de shell para indicar que se completó exitosamente. El salir con cualquier otro valor indicaría que tuvo lugar un error en el script.


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


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


            


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.

   

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

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.

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








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:
       
        * 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"




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