¿Qué es una concha?
Un shell es un programa que proporciona una interfaz entre un usuario y el núcleo de un sistema operativo (SO). Un sistema operativo inicia un shell para cada usuario cuando el usuario inicia sesión o abre una ventana de terminal o consola.
¿Qué es un script de shell?
Un script de shell es un archivo que contiene comandos de shell y UNIX. Al igual que los programas ejecutables compilados, el script de shell tiene un propósito específico y es reutilizable. Cuando los comandos en el script de shell están ordenados y sin errores, puede ejecutar el script de shell para realizar las tareas de manera eficiente.
Todos los scripts, programas y procedimientos utilizan las siguientes reglas:
- Deberían ejecutarse sin errores.
- Realizan la tarea para la que están destinados.
- Se aseguran de que la lógica del programa esté claramente definida o sea aparente.
- No deben incorporar trabajo innecesario.
Creación de scripts de shell
Un script de shell es un archivo de texto que contiene una secuencia de comandos UNIX. El script de shell suele ser una secuencia de comandos para la que tiene un uso repetido. Por lo general, ejecuta la secuencia de comandos en el script de shell ingresando el nombre del script de shell en la línea de comando.
Para crear un script de shell, cree un archivo y coloque comandos UNIX en él. Los comandos de UNIX incluyen utilidades estándar, programas de usuario y los nombres de otros scripts que necesita para realizar su tarea.
Nota – Si coloca los nombres de otras secuencias de comandos en su secuencia de comandos, asegúrese de que tengan permiso de lectura y ejecución para que se ejecuten.Un archivo de secuencia de comandos puede tener cualquier nombre siguiendo las convenciones de los nombres de archivo normales en el entorno del sistema operativo. Al nombrar sus programas de shell, debe evitar el uso de nombres que entren en conflicto con los comandos UNIX existentes o las funciones de shell.
El siguiente script de ejemplo usa el comando echo para informar al usuario sobre la salida que se espera antes de llamar al comando real que crea la salida. Es una buena práctica al escribir secuencias de comandos informar a los usuarios sobre lo que está sucediendo para que tengan una idea de si la secuencia de comandos se está ejecutando correctamente.
# vi my_script.sh #!/bin/sh clear echo "SCRIPT BEGINS" echo "Hello $LOGNAME!"
Ejecución de un script de shell
Para ejecutar un script de shell como lo hace con otros comandos en el sistema, primero asígnele el permiso de ejecución con el comando chmod; por ejemplo :
# chmod +x my_script.sh
Este es el método preferido y más común para ejecutar un script de shell. Se crea una subcapa para ejecutar el script especificado. Otorgue permiso de ejecución solo a los usuarios que necesiten ejecutar el script.
Cuando se ejecuta una secuencia de comandos en una subcapa, las variables, los alias y las funciones creadas y utilizadas en la secuencia de comandos solo se conocen en la subcapa. Una vez que la secuencia de comandos finaliza y el control vuelve al shell principal, las variables, funciones y otros cambios en el estado del shell realizados por la secuencia de comandos ya no se conocen.
El siguiente ejemplo ejecuta el script en el shell actual:
# . ./my_script.sh
El siguiente ejemplo muestra la ejecución de un script con depuración:
# sh -x my_script.sh
Ejecutemos el script que creamos en la sección anterior y veamos si arroja el resultado correcto.
sh my_script.sh SCRIPT BEGINS Hello root!
¡Comenzar un guión con el #! Personajes
Al ejecutar una secuencia de comandos que tiene permiso de ejecución escribiendo el nombre de la secuencia de comandos en la línea de comando, debe conocer la subcapa (sh, csh, ksh, bash u otras subcapas) que ejecutará la secuencia de comandos.
La primera línea del script determina el shell que se crea como intérprete del script. Los primeros dos caracteres en la primera línea de un script son #!. El shell actual interpreta lo que sigue como el nombre de ruta para que el subshell ejecute el script.
Nota – “Los primeros dos caracteres en la primera línea” significa que no debe haber líneas en blanco o espacios antes de estos caracteres.En los siguientes ejemplos, el shell especificado se bifurca como subshell para ejecutar el script.
#!/bin/sh #!/bin/csh #!/bin/ksh
Poner comentarios en un script
Las personas que escriben guiones por lo general no son las únicas personas que los leen. Muchas personas ejecutan scripts escritos por otros. Si ven el contenido del archivo de secuencia de comandos para ver qué hace la secuencia de comandos, es útil que el autor de la secuencia de comandos incluya algunas explicaciones en los comentarios.
Es una buena práctica poner comentarios en programas y scripts de shell. Los comentarios deben explicar el propósito del script y deben explicar cualquier línea específica que pueda ser especialmente confusa.
La secuencia de comandos de ejemplo, my_script.sh que se muestra a continuación, tiene un comentario al principio de la secuencia de comandos que explica qué hace la secuencia de comandos cuando se ejecuta.
# cat my_script.sh #!/bin/sh # This script clears the window, greets the user. clear echo "SCRIPT BEGINS" echo "Hello $LOGNAME!"
La adición de comentarios no afecta la ejecución del script a menos que se introduzca un error sintáctico cuando se agregan los comentarios. Los comentarios están allí con fines de documentación, por lo que alguien que lea el script tendrá una idea de lo que ocurrirá cuando se ejecute el script.
Los comentarios son a veces las primeras líneas ingresadas en un script de shell. Los comentarios pueden enumerar las operaciones paso a paso que deben realizarse. Siga cada línea de comentario por los comandos del sistema operativo para realizar la operación.
UNIX/Linux:¿Qué es un shell? ¿Cuáles son los diferentes shells?Cómo depurar scripts de shell