Cómo crear scripts de shell simples en Linux

Cómo crear scripts de shell simples en Linux

La creación de scripts de shell es una de las habilidades más esenciales que los usuarios de Linux deberían tener al alcance de la mano. Los scripts de shell juegan un papel enorme en la automatización de tareas repetitivas que de otra manera serían tediosas ejecutar línea por línea.

En este tutorial, destacamos algunas de las operaciones básicas de scripting de shell que todo usuario de Linux debería tener.

1. Cree un script de shell simple

Un script de shell es un archivo que contiene texto ASCII. Comenzaremos creando un script de shell simple y, para ello, usaremos un editor de texto. Hay bastantes editores de texto, tanto de línea de comandos como basados ​​en GUI. Para esta guía, usaremos el editor vim.

Comenzaremos creando un script simple que muestra “ Hola mundo. cuando se ejecuta.

$ vim hola .sh

Pegue el siguiente contenido en el archivo y guárdelo.

#!/bin/bash # Imprimir mensaje de Hola mundo echo “¡Hola mundo!” freestar.config.enabled_slots.push

Repasemos el script de shell línea por línea.

  • La primera línea-#!/bin/bash-se conoce como el encabezado shebang. Esta es una construcción especial que indica qué programa se utilizará para interpretar el script. En este caso, será el shell bash. indicado por /bin/bash. Hay otros lenguajes de secuencias de comandos como Python. que se indica con #!/Usr/bin/python3 y Perl. cuyo encabezado shebang se indica con #!/Usr/bin/perl.
  • La segunda línea es un comentario. Un comentario es una declaración que describe lo que hace un script de shell y lo que no se ejecuta cuando se ejecuta el script. Los comentarios siempre están precedidos por el signo de almohadilla #.
  • La última línea es el comando que imprime el mensaje ‘ Hola mundo. en la terminal.

El siguiente paso es hacer que el script sea ejecutable asignando permiso de ejecución usando el comando chmod. como se muestra.

$ chmod + x hello.sh

Finalmente, ejecute el script de shell usando cualquiera de los comandos:

$ bash hello.sh O $ ./hello.sh Crear script de Shell Hello World Crear script de Hello World Shell Crear secuencia de comandos de Shell Hello World

2. Uso de sentencias condicionales para ejecutar código

Al igual que otros lenguajes de programación, las sentencias condicionales. se utilizan en scripts bash para tomar decisiones, con solo una ligera variación en la sintaxis. Vamos a cubrir las sentencias condicionales if. if-else. y elif.

Ejemplo de una sentencia if solamente

La instrucción if. se puede utilizar para probar condiciones únicas o múltiples. Comenzaremos con el uso fundamental de la instrucción if. para probar una sola condición. La instrucción if. está definida por los bloques if … fi.

comando if, instrucción fi

​​Echemos un vistazo al script de shell a continuación.

#!/bin/bash echo ‘Ingrese la puntuación’ read x if [[$ x == 70]]; luego repita “¡Buen trabajo!” fi

​​El script de shell anterior solicita al usuario que proporcione una puntuación que luego se almacena en una variable x. Si la puntuación corresponde a 70. el script devuelve el resultado “ ¡Buen trabajo!. . El operador de comparación == se usa para probar si la puntuación ingresada, que se almacena en la variable x. es equivalente a 100.

 if Declaración en el script de Shell si Declaración en la secuencia de comandos de Shell if Declaración en la secuencia de comandos de Shell

Otros operadores de comparación que puede utilizar incluyen:

  • -eq-Igual a
  • -ne-No igual a
  • -lt-Menor que
  • -le-Menor o igual a
  • -lt-Menor que
  • -ge-Mayor o igual que

Por ejemplo, el bloque if-statement. a continuación imprime ‘ Trabaja más ’si la puntuación de entrada tiene un valor inferior a 50.

si [[$ x-lt 50]]; luego repita “¡Trabaja más duro!” fi  if Statement in Shell Script  Instrucción if en Shell Script Instrucción if en Shell Script Ejemplo de una instrucción if-else

Para situaciones en las que tiene 2 resultados posibles:-si esto o aquello-la instrucción if-else es útil.

comando if, luego instrucción1 else instrucción2 fi

​​El siguiente script lee la puntuación de entrada y verifica si es mayor o igual que 70.

Si la puntuación es mayor o igual que 70. obtienes un ‘ Buen trabajo, pasado!. ‘. Sin embargo, si el puntaje cae por debajo de 70. se imprimirá el resultado “ Falló. .

#!/Bin/bash echo “Ingrese el puntaje” leído x si [[$ x-ge 70]]; luego repita “¡Buen trabajo, pasaste!” else echo ‘Falló’ fi  declaración if-else en Shell Script  instrucción if-else en Shell Script instrucción if-else en Shell Script Ejemplo de un if-elif-else Statement

En escenarios donde hay múltiples condiciones y diferentes resultados, se utiliza la sentencia if-elif-else. Esta declaración toma el siguiente formato.

Si condición1 entonces declaración1 elif condición2 luego declaración2 más declaración3 fi

​​Por ejemplo, tenemos un script para una lotería que verifica si el número ingresado es 90 , 60. o 30.

#!/bin/bash echo ‘Ingresa la puntuación’ read x if [[$ x-eq 90]]; luego repita “Has ganado el primer premio” elif [[$ x-eq 60]]; luego repita “Has ganado el segundo premio” elif [[$ x-eq 30]]; luego echo “Has ganado el segundo premio” si no echo “Vuelve a intentarlo” fi if-elif-else statement  declaración if-elif-else sentencia if-elif-else

3. Uso de la instrucción If con lógica AND

Puede usar la instrucción if. junto con el operador lógico AND. para ejecutar una tarea si se cumplen dos condiciones. El operador && se usa para denotar la lógica Y.

#!/Bin/bash echo ‘Por favor ingrese su user_id’ lea user_id echo ‘Por favor ingrese su tag_no’ lea tag_id if [[( $ id_usuario == “tecmint” && $ id_etiqueta-eq 3990)]]; luego repita “Inicio de sesión exitoso” o repita “Error de inicio de sesión” fi

5. Uso de la instrucción If con lógica OR

Cuando se usa la lógica OR. eso está representado por || símbolo, cualquiera de las condiciones debe cumplirse con el script para obtener los resultados esperados.

#!/bin/bash echo ‘Por favor ingrese un número aleatorio’ leer número si [[(number-eq 55 || número-eq 80)]]; luego echo ‘¡Felicitaciones! Has ganado ‘else echo’ Lo siento, inténtalo de nuevo ‘fi  Instrucción If con lógica OR  Instrucción If con lógica OR Instrucción If con lógica OR

Usar construcciones de bucle

Los bucles. de Bash permiten a los usuarios realizar una serie de tareas hasta lograr un resultado determinado. Esto resulta útil para realizar tareas repetitivas. En esta sección, echaremos un vistazo a algunos de los bucles que también encontrará en otros lenguajes de programación.

Bucle while

Este es uno de los bucles más fáciles de trabajar. La sintaxis es bastante simple:

while ejecutar comandos

El ciclo while a continuación enumera todos los números del 1 al 10 cuando se ejecuta.

#!/Bin/bash # Un simple while contador de bucle = 1 mientras que [$ contador-le 10] hace eco $ contador ((contador ++)) hecho

Discutamos el ciclo while:

La variable contador. se inicializa a 1. Y mientras la variable sea menor o igual a 10. el valor del contador se incrementará hasta que se cumpla la condición. La línea echo $ counter. imprime todos los números del 1 al 10.

Bucle while en Shell Script  Bucle while en Shell Script Bucle while en Shell Script For bucle

Al igual que el bucle while. se utiliza un bucle for. para ejecutar código de forma iterativa. Es decir. repetir la ejecución del código tantas veces como sea posible definido por el usuario.

La sintaxis es:

para var en 1 2 3 4 5 N do command1 command2 done

El bucle for. a continuación, itera del 1 al 10 y procesa sus valores en la pantalla.

For loop en Shell Script Para bucle en Shell Script For loop en Shell Script

Una mejor manera de lograr esto es definir un rango usando las llaves dobles como se muestra en lugar de escribir todos los números.

#!/Bin/bash # Especificar rango en un bucle for para num en 1..10 do echo $ num do ne

Parámetros posicionales de Bash

Un parámetro posicional es una variable especial a la que se hace referencia en el script cuando se pasan valores en el shell pero no se pueden asignar. Los parámetros de posición van desde $ 0 $ 1 $ 2 $ 3. …… hasta $ 9. Más allá del valor de $ 9. los parámetros deben estar entre llaves, por ejemplo, $ 10, $ 11…. y así sucesivamente.

Al ejecutar el script, el primer parámetro posicional que es $ 0. toma el nombre del script de shell. El parámetro $ 1. toma la primera variable que se pasa al terminal, $ 2. toma la segunda, $ 3. la tercera y así sucesivamente.

Creemos un script test.sh como se muestra.

#!/bin/bash echo “El nombre del script es:” $ 0 echo “Mi nombre es:” $ 1 echo “Mi segundo nombre es : “$ 2

A continuación, ejecute el script y proporcione el nombre y el segundo nombre como argumentos:

# bash test.sh James Kiarie Parámetro posicional de Bash  Parámetro posicional Bash Parámetro posicional de bash

De la salida, podemos ver que la primera La variable que se imprime es el nombre del script de shell, en este caso, test.sh. A partir de entonces, los nombres se imprimen correspondientes a los parámetros posicionales definidos en el script de shell.

Los parámetros posicionales son útiles porque le ayudan a personalizar los datos que se ingresan en lugar de asignar explícitamente un valor a una variable.

Códigos de salida de comandos de Shell

Comencemos respondiendo una pregunta simple, ¿Qué es un código de salida.

Cada comando ejecutado en el shell por un usuario o script de shell tiene un estado de salida. Un estado de salida es un número entero.

Un estado de salida de 0. implica que el comando se ejecutó correctamente sin errores. Cualquier valor entre 1 a 255. muestra que el comando falló o no se ejecutó correctamente.

Para encontrar el estado de salida de un comando, use $? Variable de shell.

Un estado de salida de 1 indica un error general o cualquier error inadmisible, como editar archivos sin permisos de sudo.

Un estado de salida de 2 apunta a un uso incorrecto de un comando o variable de shell incorporada.

El estado de salida 127 apunta a un comando ilegal que generalmente produce el ‘ comando no encontrado. ‘.

Buscar estado de salida del comando  Buscar estado de salida del comando Buscar estado de salida del comando

Procesamiento de salida de comandos de shell dentro de un script

En el script bash, puede almacenar el resultado de un comando en una variable para uso futuro. Esto también se conoce como sustitución de comandos de shell y se puede lograr de las siguientes maneras.

variable = $ (comando) OR variable = $ (/ruta/a/comando) OR variable = $ (comando argumento 1 argumento 2 …)

Por ejemplo, puede almacenar el comando fecha. en una variable llamada hoy. y llamar al script de shell para revelar la fecha actual.

#!/bin/bash today = $ (date) echo “Hoy es $ hoy”  Imprimir fecha usando Shell Script  Imprimir fecha usando Shell Script Imprimir fecha usando Shell Script

Tomemos otro ejemplo. Suponga que desea encontrar los usuarios de inicio de sesión válidos en su sistema Linux. ¿Cómo lo harías? Primero, la lista de todos los usuarios (tanto los usuarios del sistema, los de proceso y los de inicio de sesión) se almacena en el archivo /etc/passwd.

Para ver el archivo, debe Necesito usar el comando cat. Sin embargo, para limitar la entrada de usuarios, use el comando grep para buscar usuarios con el atributo /bin/bash. y use el comando cut-c 1-10. como se muestra para mostrar los primeros 10 caracteres de los nombres.

Hemos almacenado el comando cat. en la variable login_users.

#!/bin/bash login_users = $ (cat/etc/passwd | grep/bin/bash | cut-c 1-10) echo ‘Esta es la lista de usuarios de inicio de sesión: echo $ login_users  Lista de usuarios registrados  Lista de usuarios registrados Lista de usuarios registrados

Esto trae nuestro tutorial sobre creati poner fin a los scripts de shell simples. Esperamos que le haya resultado valioso.