Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cada script de shell Bash debe comenzar con #! seguido de la ruta absoluta al
intérprete bash. Para ver la ruta, introduce este comando:
which bash
Debería producir el siguiente resultado:
/bin/bash
Esta es la ruta estándar al intérprete bash en la mayoría de los sistemas operativos
Unix. Para que el shell sepa que debe ejecutar comandos utilizando el intérprete
bash, inicia el script con esta línea:
#!/bin/bash
Veamos cómo introducir un valor de cadena mediante el comando read y hacer que el
script compare dos valores de cadena de variables diferentes:
#!/bin/bash
echo "Introduce un número"
read a #The user input in this command line will be stored as variable a
b=50 #The value of variable b
if [[$a -eq $b]]
then
echo "Mismo número"
else
echo "Número diferente"
fi
La salida de ese script debería ser la siguiente:
Introduce un número
20
Número diferente
Ten en cuenta que escribir las funciones como en el ejemplo anterior sólo las define y
no ejecuta los comandos contenidos. Para ejecutar una función, introduce su nombre
en la línea de comandos.
Ahora, usemos los dos ejemplos anteriores en una función bash completa, incluyendo
su ejecución:
#!/bin/bash
#Define a hola mundo function
hola_mundo () {
echo “¡Hola, mundo!”
echo “Esta es una variable de prueba”
}
#Define a print message function
print_message () {
echo “Aprendamos programación Bash”
echo “Disfruta este tutorial”
}
#Execute the hello world function
hola_mundo
#Execute the print message function
print_message
Este es el resultado del script anterior:
¡Hola, mundo!
Esta es una variable de prueba
Aprendamos programación Bash
Disfruta este tutorial
5.- Bucles
Los comandos bash de bucle son útiles si deseas ejecutar comandos varias veces.
Hay tres tipos de ellos que se pueden ejecutar en bash: for, while y until.
El bucle for ejecuta el comando para una lista de elementos:
#!/bin/bash
for item in [lista]
do
[comandos]
done
El siguiente ejemplo utiliza un bucle for para imprimir todos los días de la semana:
#!/bin/bash
for days in Lunes Martes Miércoles Jueves Viernes Sábado Domingo
do
echo “Day: $days”
done
En la línea 2, «days» se convierte automáticamente en una variable, cuyos valores
son los nombres de los siguientes días. Luego, en el comando echo, utilizamos el
símbolo $ para llamar a los valores de la variable.
La salida de ese script será la siguiente:
Day: Lunes
Day: Martes
Day: Miércoles
Day: Jueves
Day: Viernes
Day: Sábado
Day: Domingo
Ejecución
Para escribir la salida de un comando en un archivo, utiliza los operadores de
redirección, representados con los símbolos > y >>, y acompáñalos del nombre del
archivo:
output > nombre del archivo
output >> nombre del archivo
Ten cuidado al elegir el operador. Si el archivo existe, el operador > sobrescribirá su
contenido con una cadena de longitud cero. Esto significa que perderás el contenido
del archivo existente. Si el nombre de archivo introducido no existe, lo creará.
El operador >>, por otro lado, añadirá la salida al archivo dado.
Aquí una simple redirección para escribir la salida en un archivo de texto:
echo "¡Hola, mundo!" >> hola_mundo.txt
La redirección también funciona con el comando read para escribir cualquier entrada
del usuario. Este ejemplo de script añadirá el valor introducido en el archivo name.txt:
#!/bin/bash
echo “Ingresa tu nombre”
read Name
echo $Name >> nombre.txt
Como el script redirige la salida de la variable al archivo, no verás ninguna salida
impresa. Para ver la salida imprimiendo el contenido del archivo, añade la siguiente
línea de comando para leer el archivo:
echo 'cat nombre.txt'
Asegúrate de que tienes permiso para leer y escribir en el archivo para evitar el error
de permiso denegado. Si deseas añadir la salida a archivos existentes, asegúrate de
escribir los nombres de archivo correctos.
Ejecución