Scripts en Linux
En la mayoría de sistemas Linux, la ejecución de instrucciones para realizar acciones con cierta lógica se puede hacer mediante scripts.
Por ejemplo, se puede crear un script que ejecute un programa cuando se cumpla una condición a una hora determinada utilizando la herramienta CRON, o también se puede copiar los archivos de un directorio si se cumple una determinada condición.
Aunque existen varios lenguajes que permiten escribir scripts, uno de los más comunes es SCRIPTING BASH , porque Bash es el intérprete de comandos predeterminado en muchas distribuciones de Linux.
Para saber si una consola de sistema es compatible con el intérprete de comandos Bash, una forma es ejecutando esta instrucción:
echo $SHELL
Si como resultado, se obtiene la ruta
/bin/bash
indicará que Bash es el intérprete de comandos predeterminado de la consola, y por lo tanto, es compatible con el SCRIPTING BASH.
Crear y Guardar Script
Para crear un script para Bash, se puede escribir el código directamente en la consola, o se puede guardar el código en un archivo para asi poderlo ejecutar cada vez que sea necesario, sin tener que volver a escribir el código. Este archivo debe ser un documento de texto plano y se recomienda utilizar la codificación UTF-8.
En la primera linea de este archivo, se deberá escribir la siguiente linea de texto llamada SHEBANG o HASHBANG, sin que haya otro carácter o salto de linea delante de ella,
#!/bin/bash
Con esta linea, se le indicaa la consola que Bash sera el intérprete que ejecutará el código , ademas de su ubicación.
Una vez escrita esta línea, justo debajo de ella, ya se podra escribir el código del script.
#!/bin/bash
echo "Abriendo Navegador"
firefox
Una vez escrito el código del script, ya podrá ser guardado como texto plano y con codificación UTF-8.
Lo habitual es guardar este archivo con la extensión «.sh», ya que esta extensión se ha utilizado tradicionalmente para identificar los scripts de Bash. Aunque si se desea, al archivo se le puede no indicar extensión, ya que gracias a la línea SHEBANG, la consola de sistema sabrá qué intérprete de comandos debe ejecutar el código del script además de su ubicación.
Permisos y Ejecución del Script
Una vez guardado el archivo con el script, ya podrá ser ejecutado, pero para ello, es necesario que este archivo tenga los permisos suficientes para que el usuario pueda ejecutarlo. Si no los tiene, deberemos asignárselos mediante el comando CHMOD, por ejemplo de esta forma:
chmod ./x ruta_nombreArchivo.sh
A la hora de asignar permisos a un archivo, es importante tener en cuenta su extensión. Porque si el archivo tiene una extensión, los permisos deben asignarse utilizando la extensión incluida en el nombre del archivo. Por otro lado, si el archivo no tiene extensión, al asignar los permisos no debemos agregar una extensión al nombre. Esta distinción es fundamental porque, si el archivo tiene una extensión y asignamos los permisos sin mencionarla, la consola podría interpretarlo como un archivo diferente que comparte el mismo nombre pero carece de extensión. De manera similar, si el archivo no tiene extensión y al asignar permisos agregamos una extensión al nombre, también podríamos crear confusiones.
Una vez que el usuario tenga los permisos de ejecución para el archivo donde se guarda el script, podrá ejecutarlo. Para hacerlo, deberá utilizar la ruta relativa o absoluta al archivo. Al ejecutar el archivo con el script, también es importante determinar si posee una extensión. Si el archivo tiene una extensión, esta debe incluirse en la ejecución; en caso contrario, no debe mencionarse.
Ejecución del Script con el Comando Bash
No obstante, si un usuario no tiene permisos de ejecución para el archivo que contiene un script, pero tiene acceso al directorio donde se encuentra el archivo, aún puede ejecutar el script sin la necesidad de otorgar permisos de ejecución utilizando el comando «bash«.
Una vez que el usuario disponga de los permisos de ejecución para el archivo donde se guarda el script, podrá ejecutarlo. Para hacerlo, deberá utilizar la ruta relativa o absoluta. Al ejecutar el archivo con el script, es importante tener en cuenta si tiene una extensión. Si el archivo tiene una extensión, esta debe incluirse en la ejecución; de lo contrario, no se debe mencionar la extensión.
Para ello, simplemente escribe la palabra «bash», seguida de un espacio en blanco y la ruta del archivo junto con su nombre:
bash ruta_nombreArchivo.sh
Recuerda que si el nombre del archivo tiene una extensión, debes incluirla al ejecutarlo, y si el archivo no tiene extensión, simplemente utiliza el nombre del archivo sin mencionar ninguna extensión.
Video Primeros Pasos en Scripting Bash
Si queréis, podeis ver una explicación mas detalla en este video: