Clase 12
-
Upload
rodrigo-niculcar -
Category
Education
-
view
289 -
download
0
Transcript of Clase 12
![Page 1: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/1.jpg)
CLASE 12
![Page 2: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/2.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/3.jpg)
Ejemplo
![Page 4: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/5.jpg)
Ejemplo
![Page 6: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/7.jpg)
• 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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/8.jpg)
![Page 9: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/11.jpg)
Ejemplo
![Page 12: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/14.jpg)
• 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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/15.jpg)
![Page 16: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/17.jpg)
• 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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/18.jpg)
Ejemplos del comando de la prueba
son las siguientes:
![Page 19: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/19.jpg)
![Page 20: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/22.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/23.jpg)
• 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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/24.jpg)
Ejemplo
![Page 25: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/25.jpg)
Confirme que el usuario tenga permisos de lectura para el archivo / etc /
group
![Page 26: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/26.jpg)
Determinar si es directorio
![Page 27: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/27.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/28.jpg)
• 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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/29.jpg)
![Page 30: Clase 12](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/30.jpg)
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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/31.jpg)
• •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](https://reader034.fdocuments.co/reader034/viewer/2022050922/55a44fd51a28abe6618b4776/html5/thumbnails/32.jpg)
Cuando se encuentra una coincidencia y las órdenes respectivas se
realiza, no otros patrones se comprueban.