Guía para principiantes

Tutorial Bash Scripting para principiantes

Tutorial Bash Scripting para principiantes

Si está comenzando con los sistemas Linux, términos como "Secuencias de comandos de shell" o "Bash scripting"Puede ser bastante común, pero ¿qué significan? Antes de entrar en detalles, aprender a usar secuencias de comandos Bash puede ayudarlo a ahorrar tiempo en la ejecución y realización de varias tareas del sistema, comprender mejor la línea de comandos de Linux (Terminal) y automatizar múltiples tareas del sistema.

Que es Bash?

Bash, un acrónimo de "Bourne Again Shell," es un intérprete de lenguaje de comandos o shell Unix para el sistema operativo GNU. Ha sido el Shell principal para distribuciones de Linux y versiones de Apple macOS antes de macOS Catalina. Bash también está disponible para Windows 10 a través del subsistema de Windows para Linux.

Bash generalmente se ejecuta en una ventana de texto comúnmente conocida como Terminal, donde los usuarios ingresan comandos para realizar varias tareas. Bash también puede ejecutar comandos escritos en un archivo, un método conocido como "Bash scripting."

Diferencia entre secuencias de comandos Bash y secuencias de comandos de Shell

Las secuencias de comandos de Shell y las secuencias de comandos Bash no son lo mismo. Con las secuencias de comandos Bash, está utilizando explícitamente el shell bash. Por otro lado, las secuencias de comandos de Shell pueden ser una palabra bastante amplia, ya que tenemos otros shells disponibles además de Bash. Algunos de los más comunes incluyen Korn (ksh), C shell (csh), Z shell (zsh) y Bash shell (sh). Sin embargo, no sería una sorpresa encontrar personas que usan secuencias de comandos bash y secuencias de comandos de shell de manera intercambiable para significar lo mismo. Nuestra publicación sobre los 6 mejores shells de código abierto para Linux ofrece una descripción detallada de estos shells.

En esta publicación, veremos las secuencias de comandos de Bash. De forma predeterminada, muchas distribuciones de Linux disponibles utilizan el shell Bash. Consulte nuestra publicación sobre las 6 mejores distribuciones de Linux para principiantes. Para confirmar el shell que está utilizando en su distribución actual de Linux, ejecute el comando en la Terminal.

echo $ SHELL

cáscara

En la imagen de arriba, puede ver que el intérprete predeterminado en mi sistema es bash. Actualmente, estoy ejecutando Ubuntu 20.04 LTS. Vamos a sumergirnos!

Comprensión de los scripts de Bash

Los scripts de bash son archivos de texto que contienen comandos de bash que se ejecutan para realizar varias tareas. Para escribir estos scripts, solo necesita un editor de texto simple como gedit, leaf pad, vim, nano y mucho más. Recuerde guardar sus scripts con un .sh extensión y como texto sin formato y no como texto enriquecido. Uno de mis editores favoritos que utilizo para escribir scripts es el editor nano.

Nombrar, asignar permisos y ejecutar un script Bash

Como se explicó anteriormente, asegúrese de utilizar el .sh extensión para sus scripts bash. Por ejemplo, puede tener un script con el nombre fosslinux_backup.sh. Sin embargo, sería mejor si tuviera cuidado al nombrar sus scripts. Por ejemplo, a la mayoría de las personas les gusta guardar la mayoría de sus guiones como "prueba."Desconocido para la mayoría, hay un comando integrado de Unix llamado test, que verifica los tipos de archivos y compara valores. Puede usar el comando which para verificar si hay un programa con el mismo nombre que el de su script para evitar conflictos de programas.

cual [comando] e.g cual prueba

Cual comando

De la salida anterior, podemos ver que la prueba ya es un comando incorporado. Por lo tanto, para evitar conflictos entre programas, no nombraré ninguno de mis scripts como "prueba."

Para hacer que el script sea ejecutable para cada usuario, use el siguiente comando:

chmod + x [secuencia de comandos.sh]

Para hacer que el script sea ejecutable para el usuario actual, use el siguiente comando:

chmod u + x [secuencia de comandos.sh]

Ahora, para ejecutar el script, ejecute el siguiente comando:

./ [script_name]

Con el método anterior, se dará cuenta de que necesitará utilizar el CD comando para moverse al directorio que contiene el script o pasar la ruta al script. Sin embargo, hay una solución para esto. Guarde sus scripts en el compartimiento directorio presente en el directorio de inicio.

Con las actualizaciones recientes, la mayoría de las distribuciones no vienen con la compartimiento carpeta por defecto. Por lo tanto, se le pedirá que lo cree manualmente. Al colocar sus scripts en esta carpeta, puede ejecutar el script escribiendo su nombre en la Terminal sin usar el CD y ./ comandos.

Directrices de Bash Scripting

Antes de escribir su primer guión, hay algunas pautas que debe comprender al escribir guiones.

La #!/ bin / bash La declaración (Hash-Bang Hack) es la ruta al shell que usaremos. Si está utilizando otro shell, deberá editar esta ruta. Entendemos que todos los comentarios comienzan con el # símbolo. Sin embargo, cuando se sigue con un (!) marca en el Hash-Bang Hack, el script se ve obligado a ejecutarse con el shell al que apunta esta línea. En nuestro caso, es el caparazón Bash.

Tu primer guión de Bash

Como la mayoría de los lenguajes de programación, escribiremos un script que imprima el "Hola Mundo" declaración cuando se ejecuta. Abra su editor de texto favorito y pegue los comandos a continuación. Guarde el archivo de texto como fossHelloWorld.sh o cualquier otro nombre que no sea un comando incorporado.

#!/ bin / bash # Este script imprimirá 'Hola mundo' en la Terminal echo "Hola mundo"

Una vez que haya guardado el archivo, hágalo ejecutable ejecutando el siguiente comando:

chmod + x fossHelloWorld.sh

Ahora, ejecútelo con el siguiente comando:

./ fossHelloWorld.sh

Primer guion

El guión de arriba tiene solo tres líneas. El primero es el Hash-Bang Hack, que hemos discutido anteriormente, el segundo es un comentario y el tercero es el comando que se ejecutará. Tenga en cuenta que los comentarios nunca se ejecutan.

Veamos otras funciones de scripting de bash que puede utilizar.

Comando de eco

El comando Echo se usa para imprimir la salida en la línea de comandos de Linux o Terminal. Si es un desarrollador y ha trabajado con PHP antes, también debe haber encontrado este comando. Escribamos un pequeño script bash para demostrar cómo funciona este comando.

#!/ bin / bash # Imprimamos la primera línea echo "Esto es Fosslinux.com - Con una nueva línea "# Imprimamos la Segunda declaración sin una nueva línea echo -n" Esto es Fosslinux - No hay nueva línea "

Guarde su script, asigne los permisos necesarios y ejecútelo.

Bash Echo

Para comprender el código, el primer comando echo imprime una declaración y pasa a la siguiente línea. El segundo comando de eco tiene la -norte argumento que evita que el script pase a la siguiente línea. Puede utilizar muchas otras opciones con el comando Echo, incluidas las variables, como veremos a continuación.

Variables

Las variables son una parte común y necesaria de cualquier lenguaje de programación. Se pueden declarar variables de Bash de varias formas. Al asignar un valor a cualquier variable, no es necesario utilizar ningún símbolo. Sin embargo, al llamar al valor de la variable, necesitará utilizar el PS signo al comienzo de la variable.

Puede usar variables en la Terminal o como scripts. Ejecute los siguientes comandos en su Terminal.

myWebsite = "Fosslinux.com "echo $ myWebsite

Usando variables en la terminal

Ahora creemos un script bash que toma dos entradas del usuario y las almacena en variables $ x y $ y. El script luego verificará si los dos valores son iguales o no.

#!/ bin / bash echo "Ingresa el primer número" lee un eco "Ingresa el segundo número" lee b si [[$ a -eq $ b]] entonces echo "Los números son iguales" si no echo "Los números no son iguales" fi

Guarde el script y ejecútelo. En la imagen de abajo, puede ver que ingresamos diferentes valores, y el script pudo verificar si son iguales o no.

Variables de bash

Ahora, echemos un vistazo más de cerca al código. Las dos primeras declaraciones de eco le piden al usuario que ingrese el primer y segundo número. La leer El comando esperará a que el usuario ingrese un número y lo almacene en la variable especificada. En nuestro caso, eso es a y B. Luego tenemos una declaración if que verifica si los dos valores son iguales o no.

Sentencia condicional

En cualquier lenguaje de programación, las declaraciones condicionales controlan el flujo de un programa. Un fragmento de código se ejecutará solo cuando se cumpla una condición particular. Algunas de las declaraciones condicionales más comunes incluyen "if-then-else" y "case.”A continuación se muestra la sintaxis básica de la instrucción if-then-else.

si [[condición]] entonces  demás  fi

Eche un vistazo a la secuencia de comandos a continuación, que hace uso de la declaración condicional "si-entonces-si no".

#!/ bin / bash echo "Ingresa tu edad" lee la edad si ((edad> 18)) luego echo "Puedes ir a la fiesta" si no echo "No eres elegible para ir a la fiesta" fi

Bash declaraciones condicionales

Repasemos el guión de arriba. Tenemos el eco declaración que solicita a los usuarios que ingresen su número de edad. La leer declaración almacena la edad ingresada en una variable "edad.”Luego tenemos una declaración condicional if-then-else que verifica si la edad es mayor de 18 antes de instruir al usuario.

Bucles

Los bucles se usan comúnmente cuando desea ejecutar un fragmento de código varias veces. Por ejemplo, si quisiera repetir 1000 líneas de la declaración "Bienvenido a Fosslinux", necesitaría 1000 declaraciones de eco. Sin embargo, con los bucles, todo lo que necesito hacer es especificar la cantidad de veces que quiero que la declaración se repita o se imprima en la Terminal. Bash admite tres tipos de bucles; Bucle for, bucle while y bucle hasta. Echemos un vistazo a cada uno de ellos.

Un bucle for se utiliza para recorrer en iteración una lista de datos especificados o una matriz. A continuación se muestra la sintaxis básica del Bash For Loop;

para Valor en 1 2 3 4 5… N hacer instrucción1 instrucción2 instrucción-N hecha

o,

para VALOR en archivo1 archivo2 archivo3 hacer instrucción1 en $ VALOR instrucción2 instrucción-N hecha

Eche un vistazo al guión a continuación. Repite los días de la semana indicados y los imprime en la Terminal línea por línea.

# Lee el nombre de un día de la semana en cada iteración del ciclo para el día del lunes martes miércoles jueves viernes sábado domingo haz eco de "$ día" hecho

Guardemos el script como En bucle.sh y ejecutarlo. A continuación se muestra una captura de pantalla de la salida.

En bucle

Eso es solo un ejemplo simple de lo que puede hacer con For Loop. También puede combinarlo con declaraciones condicionales para completar una tarea en particular.

El ciclo while ejecuta una tarea específica mientras que una condición particular permanece verdadera. En cada iteración, el ciclo primero verificará la condición antes de ejecutar las instrucciones. Cuando la condición es falsa, el ciclo terminará. La sintaxis básica del ciclo de bash While es la siguiente:

mientras [CONDICIÓN] hace [COMANDOS] hecho

Por ejemplo, podemos tener un script que imprima la declaración “Bienvenido a FOSSLINUX.COM ” 20 veces hasta que una variable X se establezca en 20. Intentemos e implementemos eso prácticamente. Eche un vistazo al guión a continuación.

#!/ bin / bash x = 1 while [$ x -le 20] do echo "Bienvenido a FOSSLINUX.COM "x = $ (($ x + 1)) hecho

Guardemos el script como WhileLoop.sh y ejecutarlo. A continuación se muestra una captura de pantalla de la salida.

Mientras bucle

Echemos un vistazo a la secuencia de comandos While Loop anterior. Primero declaramos una variable X dándole el valor 1. Luego creamos una declaración While que genera la declaración "Bienvenido a FOSSLINUX.COM ”mientras que X es menor que 20. Por último, incrementamos X en uno después de cada iteración.

Los bucles Bash Until se utilizan para ejecutar un conjunto de instrucciones o comandos siempre que la condición establecida se evalúe como falsa. A continuación se muestra la sintaxis básica del bucle Hasta.

hasta que [CONDICIÓN] haga [INSTARUCTIONS / COMMANDS] hecho

Similar al ciclo While, el ciclo Hasta primero evalúa la condición establecida antes de ejecutar las instrucciones o comandos. Si la condición se evalúa como falsa, se ejecutan las instrucciones. El ciclo finaliza cuando la condición se evalúa como verdadera. Eche un vistazo al siguiente ejemplo.

#!/ bin / bash count = 0 hasta que [$ count -gt 5] haga echo Contador: $ count ((count ++)) hecho

Después de guardar y ejecutar el script anterior, obtenemos el resultado a continuación:

Hasta bucle

Los scripts anteriores primero crean un recuento de variables y lo ponen a cero (0). Esa es la condición que controla el flujo de nuestro programa. El bucle hasta comprueba si el valor de recuento es mayor que 5. Si no es así, imprimirá las instrucciones aprobadas. Sin embargo, si el valor es mayor que 5, el bucle terminará inmediatamente. Por último, incrementamos el valor del recuento en 1 (recuento ++).

Funciones Bash

En programación y secuencias de comandos, las funciones se utilizan para contener un fragmento de código reutilizable necesario para realizar una tarea en particular. Por lo tanto, si tiene comandos similares que desea ejecutar en diferentes partes de su script, no necesita escribir estos comandos repetidamente. Incluirlos en una función y ejecutar la función en su lugar.
A continuación se muestra la sintaxis básica de la función Bash.

nombre de la función ()    

o,

function nombre_función    

Creemos un script simple que use funciones. Primero creamos una función llamada "myFunction", que genera la declaración "Hola, soy la primera función" cuando se llama. La segunda función, "myCities", es un poco avanzada ya que toma argumentos pasados. Los argumentos se dan después de llamar al nombre de la función. Son accesibles en la función como $ 1.

#!/ bin / bash myFunction () echo "Hola, soy la primera función" echo "Hola, soy la primera función" echo echo "Esta es la segunda función" function myCities () echo Hola $ 1 myFunction myCities Washington, D.C myCities Phoenix

Después de guardar y ejecutar el script, obtenemos el resultado a continuación.

Funciones

Menús Bash

Al escribir un script para realizar una tarea avanzada, es posible que necesite que el usuario seleccione una sola opción entre varias opciones que se muestran en la Terminal. Para lograr eso, usaremos el bash Seleccione mando.

Crea un script de menú simple que pedirá a los usuarios que seleccionen sus distribuciones de Linux favoritas de una lista. Eche un vistazo al guión a continuación.

#!/ bin / bash #Imprimir mensaje para el usuario echo "Seleccione su distribución Linux favorita" seleccione distribución en Ubuntu Fedora OpenSUSE DeepIN Parrot ArchLinux Kali do #Imprima el valor seleccionado si [[$ distro == "Exit"]] luego salga 0 echo "La distribución de Linux seleccionada es $ distro" fi hecho

Guardemos el script como menú.sh y ejecutarlo. Obtenemos la salida a continuación.

Menús Bash

En el script anterior, tenemos una lista de siete distribuciones de Linux del usuario seleccionará una. Después de que hacen una selección, se almacena en la variable distro y luego se imprime concatenando con la cuerda "La distribución de Linux seleccionada es." Los menús de selección de Bash pueden ser bastante útiles, especialmente cuando tiene varios scripts que realizan diferentes tareas, y uno tiene que seleccionar el que desea ejecutar.

Aritmética

Todos los lenguajes de programación admiten la realización de operaciones aritméticas, y los scripts bash no son una excepción. Sin embargo, la forma en que realizamos las operaciones aritméticas es un poco diferente. A continuación se muestra una de las formas en que puede realizar operaciones aritméticas en bash. Veremos cuatro tipos de operaciones aritméticas: suma, división y multiplicación.

#!/ bin / bash # Calcular el resultado de la suma = $ ((70 + 15)) # Imprimir el valor de la suma echo "suma = $ resultado" # Calcular el resultado de la división = $ ((100/25)) # Imprimir el valor de la división echo "división = $ resultado "#Calcular resultado de multiplicación = $ ((15 * 15)) echo" Multiplicación = $ resultado "

Guardemos el script anterior como aritmético.sh y ejecutarlo. Obtenemos la salida a continuación.

Aritmética

Conclusión

Esa es una guía completa para principiantes para comenzar con las secuencias de comandos Bash. Sin embargo, hay más en Bash además de lo que se cubre en este tutorial. Uno de los lugares que recomendaría para mejorar sus habilidades es el Manual de referencia de Bash de GNU. Si tiene algún problema o comenta sobre esta publicación, no dude en hacer clic en los comentarios a continuación.

Motores de juegos gratuitos y de código abierto para desarrollar juegos de Linux
Este artículo cubrirá una lista de motores de juegos de código abierto y gratuitos que se pueden usar para desarrollar juegos 2D y 3D en Linux. Existe...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...
Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...