clase 12

32
CLASE 12

Upload: rodrigo-niculcar

Post on 14-Jul-2015

289 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Clase 12

CLASE 12

Page 2: 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....

Page 3: Clase 12

Ejemplo

Page 4: Clase 12

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.

Page 5: Clase 12

Ejemplo

Page 6: Clase 12

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

Page 7: Clase 12

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

Page 8: Clase 12
Page 9: Clase 12

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.

Page 10: Clase 12

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.

Page 11: Clase 12

Ejemplo

Page 12: Clase 12

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

Page 13: Clase 12

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.

Page 14: Clase 12

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

Page 15: Clase 12
Page 16: Clase 12

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

Page 17: Clase 12

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

Page 18: Clase 12

Ejemplos del comando de la prueba

son las siguientes:

Page 19: Clase 12
Page 20: Clase 12

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

Page 21: Clase 12

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

anterior falla.

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

Page 22: Clase 12

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:

Page 23: Clase 12

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

Page 24: Clase 12

Ejemplo

Page 25: Clase 12

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

group

Page 26: Clase 12

Determinar si es directorio

Page 27: Clase 12

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:

Page 28: Clase 12

• 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:

Page 29: Clase 12
Page 30: Clase 12

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:

Page 31: Clase 12

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

Page 32: Clase 12

Cuando se encuentra una coincidencia y las órdenes respectivas se

realiza, no otros patrones se comprueban.