Shell es un intérprete de línea de comandos que permite al usuario interactuar con el sistema. Es responsable de tomar entradas del usuario y mostrar la salida.
Los scripts de shell son una serie de comandos escritos en orden de ejecución. Estos scripts pueden contener funciones, bucles, comandos, variables. Los scripts facilitan a los usuarios guardar ciertas secuencias de códigos que pueden usarse una y otra vez. Los scripts de shell también pueden tener comentarios para aumentar la legibilidad.
Se debe guardar un script de shell con la extensión .sh .
Para que el sistema Linux sepa que el archivo es un script de shell, el archivo debe comenzar con shebang construir.
#!/bin/bash OR #!/bin/sh
Después de esto, el script puede contener comandos, funciones, bucles, comprobaciones condicionales, etc.
Un buen guión siempre contiene comentarios que lo hacen legible.
Crear y ejecutar un script de shell básico
Se puede crear un script de shell usando vi, el comando cat o el editor de texto normal en la GUI.
Vamos a crear un script de shell básico usando vi
$ vi basic_script.sh
Esto lo llevará al editor vi. Agregue las siguientes líneas:
#!/bin/bash whoami date
Este sencillo script debería mostrar el usuario actual seguido de la fecha.
Para guardar y salir del editor vi:
- Presione ESC
- Tipo:
- Escriba 'wq'
- Presiona Enter
De forma predeterminada, el creador del script no obtiene permiso de ejecución para el archivo.
Para cambiar eso:
$ chmod +x basic_script.sh
Esto le dará a usted (usuario actual) el permiso para ejecutar el archivo.
Para ejecutar el script:
$ bash basic_script.sh
La primera línea de salida corresponde al comando 'whoami' y la segunda línea al comando 'fecha'.
Otra forma de ejecutar el script es:
$ ./basic_script.sh
Ejecutar el archivo de esta manera puede requerir que el usuario dé permiso primero. Ejecutarlo con 'bash' no requiere el permiso.
El mismo script se ejecuta con ‘bash’ antes, pero tenía problemas de permisos cuando intentaba ejecutarlo directamente. La razón por la que esto sucede es que el comando bash [nombre de archivo] solo necesita permiso de lectura del archivo.
Mientras que el comando ./[nombre de archivo] ejecuta el archivo como ejecutable y, por lo tanto, requiere permiso para ejecutarse. Esta pregunta ha sido respondida en detalle en StackExchange.
En general, es mejor proporcionar permiso ejecutable.
Uso de variables en scripts de shell
Los scripts pueden incluir variables definidas por el usuario; de hecho, a medida que los scripts aumentan de tamaño, es esencial tener variables claramente definidas. Las variables que son de naturaleza autodescriptiva son otra cualidad de un buen guión.
Agregue las siguientes líneas al script:
#!/bin/bash #This is a comment #defining a variable GREETINGS="Hello! How are you" echo $GREETINGS
SALUDOS es la variable definida y luego accedida usando '$'.
No debe haber espacios en la línea donde se asigna un valor a las variables.
Ejecutemos el script:
Leyendo entrada desde la línea de comando
Los scripts de shell se pueden hacer interactivos con la capacidad de aceptar entradas desde la línea de comandos. El comando de lectura se puede usar para almacenar la entrada de la línea de comando en una variable.
#!/bin/bash #This is a comment #defining a variable echo "What is your name?" #reading input read NAME #defining a variable GREETINGS="Hello! How are you" echo $NAME $GREETINGS
Una variable NOMBRE se ha utilizado para aceptar entradas desde la línea de comandos.
Al ejecutar el script:
Definiendo funciones
Los usuarios pueden definir sus propias funciones en un script. Estas funciones pueden tomar múltiples argumentos.
En el script agregue:
#!/bin/bash #This is a comment #defining a variable echo "What is the name of the directory you want to create?" #reading input read NAME #defining a variable echo "Creating $NAME ..." mkcd () { mkdir "$NAME" cd "$NAME" } mkcd echo "You are now in $NAME"
Este script le pedirá al usuario un nombre de directorio. Luego creará el directorio y cd en él.
Conclusión
Vimos cómo se pueden usar los scripts para ejecutar comandos en orden serial. Los scripts ayudan a los usuarios a reducir la redundancia y ahorrar tiempo. Los scripts también se pueden compartir entre diferentes usuarios.
Los scripts que vimos en este tutorial eran bastante básicos, los scripts también se pueden diseñar para realizar tareas complejas. Para obtener más información sobre las secuencias de comandos, consulte esto.