¿Alguna vez ha querido aprender «scripting» en Linux? Hacerlos es más fácil de lo que piensas. A veces, los scripts (a menudo denominados scripts de shell o bash) son programas reales con un código complicado en su interior. Otras veces, son solo una larga lista de tareas que los usuarios organizan para hacer que las cosas se hagan con Linux de forma más rápida y sencilla.
En este artículo, aprenderá cómo crear un script de shell básico en Linux. Primero, aprenderá sobre los requisitos básicos y lo que se debe y no se debe hacer con un script de shell, luego, cómo tomar la entrada del usuario a través del script e imprimirlo en la pantalla del terminal. Aprenderá lo fácil que es comenzar (y las mejores prácticas) con la creación de scripts en Linux.
Propina: echa un vistazo a nuestra hoja de trucos de expresiones regulares.
¿Por qué harías un guión?
Hacer scripts en Linux es una habilidad muy útil. Puede automatizar algunas tareas repetitivas utilizando scripts de bash. Si lo hace bien, puede volverlo muy productivo y permitirle lograr más en menos tiempo.
Por ejemplo: tal vez acabas de construir Arch Linux desde cero. El sistema operativo está instalado, junto con todos los paquetes básicos, y puede iniciarse en la terminal cuando se inicia el sistema operativo. Arch Linux tarda en configurarse, por lo que el proceso no se completa.
En este punto, el usuario podría escribir un script Bash y realizar todo a la vez. Nada de esto es programación, o avanzado para el caso. Sin embargo, dado el hecho de que el usuario entiende lo suficiente sobre la forma en que funciona Arch Linux, podría automatizar casi todo el proceso posterior a la instalación (entorno de escritorio, controladores, configuración del usuario, etc.).
¡El único límite para su script bash es su propio conocimiento de Linux y Bash! Hacerlos es más fácil de lo que piensas.
Empezando
Las cosas deben especificarse y los recursos deben cargarse al escribir código. También es necesario especificar algunas cosas al crear secuencias de comandos con el shell. En bash scripting, esto se conoce como «shebang». Los shebangs utilizados en los scripts le dicen al script bajo qué intérprete debe ejecutarse. Esto podría ser Bash o cualquier otro script disponible en su sistema. Tenga en cuenta que los diferentes idiomas tienen sus propios shebangs.
Por ejemplo: al escribir un script de Python, el shebang sería #!/usr/bin/python
.
Bash tiene muchos shebangs diferentes que se pueden usar, pero la mayoría de los usuarios probablemente solo hayan visto #!/bin/bash
. Como regla general, utilice #!/bin/bash
al escribir un script simple y no planea sacarlo de Linux. Todas las distribuciones modernas de Linux tienen la misma versión de bash, y el shell de bash generalmente se encuentra en el mismo lugar.
Otro tinglado que demuestra ser útil es #!/usr/bin/env bash
. Está diseñado para la portabilidad y debe usarse si el script está diseñado para ejecutarse en otros sistemas operativos similares a Unix (BSD, macOS, etc.).
Mejores prácticas
Escribir guiones en Bash puede ser un proceso complicado, si el escritor lo hace así. La mayoría de las veces, los scripts son solo una colección de diferentes operaciones. Mover un archivo, descargar algo, instalar programas y ese tipo de cosas.
- Tenga en cuenta que Bash es un lenguaje diseñado para manipular archivos y procesos en el sistema. Si Bash satisface sus necesidades, eso es bueno. Sin embargo, comprenda que para la programación avanzada, Bash realmente no es la opción correcta, y sería mejor pasar a algo como Python.
- Haga que sus scripts sean compatibles con «SH» y en el formato «.sh» si el plan es usar scripts en algo más que una plataforma Linux. Aunque otros sistemas operativos similares a UNIX pueden tener shells «similares a bash», algunos no tienen bash en absoluto, y es bueno estar preparado para esto.
- Aprenda el shell Bash y cómo funciona. Te ayudará a escribir mejor tus guiones.
- Siempre use un shebang, y lo que es más importante, usa el correcto. Puede significar la diferencia entre un buen guión y uno pésimo que no funciona bien.
- Comente siempre cada operación. En seis meses, puede volver a su guión y preguntarse qué significa todo, por lo que es crucial que su guión esté bien documentado y sea fácil de entender (para usted y cualquier otra persona que pueda verlo).
- Haz que tu código sea legible. Incluso si su guión no es nada complejo, aún debería tener sentido, y hacerlos es más fácil de lo que piensa.
- Pruebe su guión en busca de errores antes de dárselo a otros. No haga que otros prueben errores por usted. Idealmente, los guiones deberían funcionar antes de enviarlos para que la gente los use.
Hacer un guión
Para comenzar a crear secuencias de comandos, todo lo que necesita es un editor de texto. Cualquier editor de texto simple servirá. No tiene que ser complicado o completo. Para este ejemplo, estamos creando un script de saludos simple usando el editor Gedit.
Crea y abre el script en Gedit
Cree un script llamado «saludos.sh» y ábralo dentro del editor Gedit. Esta primera parte del guión es el shebang, como se mencionó anteriormente. Esto permite que la secuencia de comandos le diga al intérprete qué debe usar para comprender el código.
#!/bin/bash
A continuación, escribamos un comentario. Esto permitirá que cualquier persona que use el script entienda qué debe hacer el código. Se pueden agregar comentarios a un script colocando un #
símbolo. Cualquier cosa posterior no será recogida por el script.
# My first Linux script
Imprimir un Hello World simple
Para imprimir cualquier salida, usamos el echo
comando en bash. Si desea imprimir «Hola mundo», el comando debería verse así:
echo "Hello world"
Hacer el script ejecutable
Para hacer que el script sea ejecutable, estamos usando el chmod
dominio.
chmod +x greetings.sh
Él +x
significa agregar permiso de ejecución al archivo de script. Para ejecutar el script, llame al nombre del script con su ruta relativa.
./greetings.sh
Tomando la entrada del usuario
Tomar la entrada del usuario es la característica más básica de un script bash, y debe tener un concepto de variables en bash. Las variables son como almacenamiento donde puede almacenar valores. En este caso, estamos almacenando la entrada del usuario en una variable bash. Para hacer una entrada, le hacemos una pregunta al usuario.
echo -e "What is your name: "
Cuando el usuario ingresa su nombre, podemos leer la entrada usando una variable bash llamada inputname
.
echo -e "What is your name: " read inputname
Puede usar cualquier nombre de variable que prefiera, pero asegúrese de agregar el read
Comando justo después de la echo
dominio.
Impresión de un mensaje de saludo
El nombre de usuario almacenado es el inputname
variable. Para saludar al usuario, usamos nuevamente el comando echo.
echo "Good morning $inputname"
estamos usando el $
signo para representar una variable dentro de una cadena. Guarde el script y ejecútelo usando el ./greetings.sh
dominio.
Ahora puedes hacer tus propios saludos y compartirlos con tus amigos.
Extensiones de archivo
No hay diferencia en las extensiones de archivo para los scripts. Nombrar un archivo con la extensión de archivo «.sh» afecta poco la forma en que se ejecuta el programa. Un script de Bash aún se ejecutará sin extensión de archivo: archivos de texto en blanco y todo lo demás, siempre que estén presentes los comandos y argumentos correctos.
Aunque el shell de Bash ignora las extensiones de archivo, eso no significa que el escritor del script deba hacerlo. Algunos entornos de escritorio que le permiten configurar secuencias de comandos de shell para que se ejecuten al inicio dependen de que la secuencia de comandos tenga la extensión de archivo «.sh» correcta. Esto también ayuda para propósitos de organización.
Cuando se trata de eso, la mayoría de los scripts de shell se guardan como archivos «.sh» para la portabilidad. El «sh» no tiene nada que ver con Bash en sí, y el script puede ejecutarse con cualquier shell compatible.
Alternativamente, los scripts se pueden guardar como .bash, .ksh (Unix korn shell), etc. Estas extensiones de archivo son inferiores y realmente limitan la utilidad de un script. Esto se debe a que están diseñados solo para los proyectiles que usan esas extensiones.
Preguntas frecuentes
¿Es fácil aprender secuencias de comandos de bash?
Si estuvo expuesto a los lenguajes de programación, entonces la creación de scripts de bash parecerá bastante fácil. Comparte los mismos conceptos de programación, como variables, bucles, etc. Pero si no sabes nada de programación, te recomiendo que empieces con python. Python es muy fácil de aprender y también puedes hacer scripts con él.
¿Vale la pena aprender bash?
Si maneja Linux a diario o usa Linux en su entorno de trabajo, entonces debe aprender a ejecutar scripts de bash. También puede aprender bash para automatizar su tarea diaria. De lo contrario, no veo ningún uso de bash en la industria del desarrollo de software.
¿Cómo puedo aprender scripting de bash en Windows?
No existe una forma nativa de aprender bash en Windows, pero puede usar el subsistema de Windows para Linux (WSL) para ejecutar una distribución de Linux dentro de su máquina con Windows y usarla para ejecutar comandos de bash.
Credito de imagen: Unsplash. Todas las capturas de pantalla por Hrishikesh Pathak.
Danos tu opinión