Clase 12

Post on 14-Jul-2015

289 views 0 download

Transcript of Clase 12

CLASE 12

Determinación del tipo de Shell para ejecutar un script de

shell

• Hay varias shells disponibles en el sistema operativo Solaris. Dos de los más comúnmente utilizados son los depósitos de la shell Bourne y Korn.

• Para asegurar que el SHELL correcto se utiliza para ejecutar un script de shell, la primera línea deel guión siempre debe comenzar con los caracteres #!, seguido inmediatamente por el nombre de ruta absoluta del SHELL necesario para ejecutar elscript. Estos deben ser los únicos caracteres en la primera línea del archivo....

Ejemplo

COMENTARIOS

• Los comentarios son entradas de texto que a menudo proporcionan información sobre un shellguión.

• Se insertan en un script de shell, pero no tienen ningún efecto en el carácter sí mismo. Los comentarios son ignorados por la cáscara y son únicamente para el beneficio del usuario.

•Los comentarios son precedidas por la almohadilla (#) carácter. Cada vez que el shell se encuentra con una palabra que comienza con el carácter # ignora todo el texto enesa línea.

Ejemplo

Ejecución de secuencias de comandos

de shell• El shell interpreta los scripts de shell de línea

por línea.

• Los shell scripts no se compilan en forma binaria. Debido a que los scripts de shell que se lea línea por línea, cuando que se ejecutan, el usuario debe tener permisos de lectura para poder ejecutar un shell

• Por ejemplo, para conceder permisos de lectura para el tipo de usuario mycmd:

• $ chmod u+rx mycmd

• Cuando un script de shell se está ejecutando, los cambios aplicados se producen en la sub-shello el proceso hijo. Un sub-shell no puede cambiar los valores de una variable en el shell padre, o su directorio de trabajo.

Comprobación del estado de la salida

•Todos los comandos en el entorno UNIX devolver un estado de salida. Este valor numérico que se utiliza para indicar el éxito o el fracaso de un comando. Un valor de cero indica que el éxito. Un valor distinto de cero indica un fallo.

• Este valor distinto de cero puede ser cualquier número entero en el rango de 1-255.

•El creador del programa puede utilizar el estado de salida los valores para indicar diferentes situaciones de error.

• El estado de salida del último comando realizado en elprimer plano se lleva a cabo en el $? especial variable de shell, y puede ser probado por utilizando el comando echo.

Pasar valores a un script de shell

• Los scripts, pueden ser más útil cuando se pasan valores a ellos mientras ejecutarlos. Cuando se ejecuta un script y transmitir los valores para la línea de comandos. La variable $ 1, el segundo en la variable $ 2, y así sucesivamente. Estos variables especiales se denominan los parámetros de posición, y son muy útiles para verificar que el usuario pasa el número correcto de valores cuando el guión fue de ejecución.

Ejemplo

El cambio de comando

• En el shell Bourne y Korn se puede pasar tantos valores como sea necesarioen la línea de comandos.

• Sin embargo, el shell Bourne sólo acepta un único número después del signo $.

Comprobación del estado de la salida

• Todos los comandos en el entorno UNIX devolver un estado de salida. Este valor numérico que se utiliza para indicar el éxito o el fracaso de un comando.

• Un valor de cero indica que el éxito.

• Un valor distinto de cero indica un fallo.

• Este valor distinto de cero puede ser cualquier número entero en el rango de 1-255.

• El creador del programa puede utilizar el estado de salida los valores para indicar diferentessituaciones de error.

• El estado de salida del último comando realizado en el primer plano se lleva a cabo en el $? especial variable de shell, y puede ser probado por utilizando el comando echo.

Uso de la test Command

• El comando test se utiliza para probar las condiciones.

• Este comando es muy útil en los scripts de shell.

• El comando test se puede utilizar para verificar muchas condiciones, incluyendo:

▫ contenido variable

▫ archivo de permisos de acceso

▫ Tipos de archivo

• El comando de la prueba no se devuelve ningún resultado. Si la condición se probado es cierto, el estado de salida del comando de la prueba se establece en 0.

• Si el afección que se estudia es falsa, el estado de salida se establece en 1.

Ejemplos del comando de la prueba

son las siguientes:

Ejecución de comandos condicionales

• La cáscara proporciona especial de dos construcciones que le permiten realizar unacomando en función de si un comando procedimiento tiene éxito o fracasa.

• & & La construcción se asegura de que un comando se lleva a cabo sólo si el comando anterior se realiza correctamente.

• $ mkdir $HOME/newdir && cd $HOME/newdir

El | | asegura que un comando se lleva a cabo sólo si el

anterior falla.

• $ mkdir /usr/tmp/newdir || mkdir $HOME/newdir

Uso del comando si

• El comando si se evalúa el estado de salida de un comando e inicia acciones adicionales basados en el valor devuelto. El caso de la sintaxis de comandos es el siguiente:

• Si el estado de salida es cero, todos los comandos que siguen a continuación, la declaración se realizado. Si el estado de salida es distinto de cero, todos los comandos que siguen el else se llevan a cabo.

Ejemplo

Confirme que el usuario tenga permisos de lectura para el archivo / etc /

group

Determinar si es directorio

Uso del comando, WHILE

• El comando, while que le permite repetir un comando o grupo de comandos. La sintaxis del comando, mientras que es el siguiente:

• En este ejemplo, el comando while se evalúa el estado de salida de la comando1 que le sigue.

• Si el valor es cero, todos los comandos que siga la instrucción do son realizado, comando1 se ejecuta de nuevo, y el estado de salida marcada de nuevo.

• Si el estado de salida del comando1 es distinto de cero, el bucle termina.

• Por ejemplo, utilice el comando set para asignar valores a la posición parámetros de la siguiente manera:

CASE

• El comando case se compara un único valor en contra de otros valores, y realiza un comando o grupo de comandos cuando se encuentra una coincidencia. La la sintaxis de comandos caso es el siguiente:

• •Comparaciones para números enteros

• -eq A -eq B si son iguales

• -ne A -ne B si son distintos

• -gt A -gt B si A > B

• -ge A -ge B si A " B

• -lt A -lt B si A < B

• -le A -le B si A " B

Cuando se encuentra una coincidencia y las órdenes respectivas se

realiza, no otros patrones se comprueban.