0% encontró este documento útil (0 votos)
5 vistas8 páginas

Guía de Scripting en Bash

El documento proporciona una guía sobre la creación y uso de scripts en Bash, incluyendo la estructura básica de un script, el uso de variables de entorno, y la implementación de condicionales, bucles y funciones. Se explican ejemplos prácticos de cómo interactuar con el usuario, manipular arreglos y trabajar con archivos. Además, se abordan conceptos como la ejecución de scripts y la gestión de permisos.

Cargado por

Sebastian Mora
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas8 páginas

Guía de Scripting en Bash

El documento proporciona una guía sobre la creación y uso de scripts en Bash, incluyendo la estructura básica de un script, el uso de variables de entorno, y la implementación de condicionales, bucles y funciones. Se explican ejemplos prácticos de cómo interactuar con el usuario, manipular arreglos y trabajar con archivos. Además, se abordan conceptos como la ejecución de scripts y la gestión de permisos.

Cargado por

Sebastian Mora
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

01-bash-shell.

md 2024-09-06

Scripting usando Bash-shell


Script
Secuencia de comandos
Programa simple
No compilado, Interpretado usando Bash
Son identificados por el sistema a través de encabezados:

#!/bin/bash

Terminal
Se llama prompt al carácter o conjunto de caracteres que se muestran en una línea de comandos para
indicar que se esta a la espera de ordenes
Interfaz gráfica que simula una linea de comandos (Ventana que nos muestra el prompt)
La terminal ALOJA a la Shell

Línea de comandos (shell)


Un programa que toma comandos y los pasa al sistema operativo para procesarlos. (Interpreta los
comandos y le dice al Sistema operativo QUE HACER)
Bourne Shell, Bash Shell, C Shell, Power Shell

La shell es el programa que usa los comandos, los procesa y nos envía los resultados.

Y esto ¿Para qué sirve?

En ocasiones, los comandos independientes de la consola son insuficientes, es necesario utilizar un


conjunto de comandos para realizar una tarea especifica, combinando estos conocimientos y flujo de
eventos con programación para solucionar una tarea determinada.

Variables de entorno
Valores almacenados en la shell que contienen información de la misma shell, del sistema, entre otro tipo de
información importante del equipo.

Ubicación de binarios
Ubicación de carpeta home
etc

Podemos ver las variables de entorno de la siguiente manera:

printenv

1/8
[Link] 2024-09-06

Nos devuelve una lista de las variables de entorno. La sintaxis de una variable de entorno es en mayúsculas,
para imprimir alguna en especifio usamos el comando echo seguido de signo pesos mas la variable.

echo $HOME

Si queremos crear una variable usamos lo siguiente:

export EJEMPLO_VARIABLE=$PATH

En este caso decimos que la EJEMPLO_VARIABLE es igual a la variable PATH.

Crear un Script Bash


Se crea un archivo con la extensión .sh.
Necesita de una cabecera para que el sistema reconozca que es un script bash, es decir el binario de
bash
(Opcional) Luego se pone el autor
(Opcional) Descripción del script

#!/bin/bash
#Author: Juan Mora
#Mi primer Script Shell

echo "Hola Mundo"

En este caso se revisan los permisos sobre el archivo, sino se tienen permisos ejecución no se podra ejecutar
el .sh, una forma de darle permisos de ejecución en cada terna es chmod +x [Link]. Para ejecutarlo se
utiliza ./[Link] donde . hace referencia a la ruta donde esta ubicado.

Otro ejemplo:

#!/bin/bash
#Author: Juan Mora
#Mi primer Script Shell

pwd
cd $HOME
echo "Dirigiendose a $HOME ..."
pwd

Se mueve a la ubicación de $HOME, a su vez va impriendo la posición donde se encuentra.

2/8
[Link] 2024-09-06

Parámetros

#!/bin/bash
#Author: Juan Mora
#Ejemplo de variables y parámetros dinámicos

ubicacion=$(pwd)
echo $ubicacion

Es necesario para comandos usar $(comando) para que lo tome como comando y no texto

Pasandole parámetros

#!/bin/bash
#Author: Juan Mora
#Ejemplo de variables y parámetros dinámicos

ubicacion=$(pwd)
nombre=$1
apellido=$2

echo "Hola mi nombre es $nombre $apellido"


echo "Cantidad de parametros: $*"
echo $ubicacion

De esta manera se impremen los dos primeros valores pasados al script "./script parametro1
parametro2" y saldra "Hola mi nombre es parametro1 parametro2"

Scripts interactivos
Que el programa me pregunte los parámetros para usarlos de manera interactiva...

#!/bin/bash
#Author: Juan Mora
#Ejemplo de variables y parámetros dinámicos

name=""
age=0

read -p "Ingresa tu nombre: " name


read -p "Ingresa tu edad: " age

echo "Hola mi nombre es $name y tengo $age años."

De esta manera se ingresan dos parámetros y estos son recibidos para imprimirlos por pantalla.

3/8
[Link] 2024-09-06

Condicionales
Se puede usar simbolos o usar lo siguiente:

#!/bin/bash
#Author: Juan Mora
#Ejemplo de variables y parámetros dinámicos

name=""
age=0
year=0

read -p "Ingresa tu nombre: " name


read -p "Ingresa tu edad: " age
read -p "Ingresa el año actual: " year

echo "Hola mi nombre es $name y tengo $age años."


echo "=========================================="
if (( $age >= 18 )); then
echo "$name, Eres mayor de edad"
else
echo "$name, No eres mayor de edad"
fi

echo "========================================="

if [ $age -ge 18 ] && [ $year -eq 2022 ]; then


echo "$name, Eres mayor de edad y este año puedes votar"
else
echo "$name, No se cumplen las condiciones para votar"
fi

fi = final if, cuando se añaden mas condiciones se usan los corchetes.

Comparar cadenas de texto

#!/bin/bash
# Author: Juan Mora
# Comparación de texto

4/8
[Link] 2024-09-06

opcion=""
read -p "Ingrese una opción (A-B): " opcion

if [ "$opcion" == "E" ];then


echo "Es igual a E"
else
echo "No son iguales"
fi

Case

#!/bin/bash
# Author: Juan Mora
# Comparación de texto

opcion=""
read -p "Ingrese una opción (A-B): " opcion

if [ "$opcion" == "E" ];then


echo "Es igual a E"
else
echo "No son iguales"
fi

case $opcion in
"A") echo "Ha ingresado la Opción A";;
"B") echo "Ha ingresado la Opción B";;
[C-Z]) echo "Ha ingresado un valor de C a Z";;
"*") echo "Ha ingresado otro valor";;

[C-Z]: dice que va desde C a Z. * significa cualquier otro elemento, este puede funcionar con comillas o
sin comillas depende del *SO*.

Arreglos e Iteraciones

#!/bin/bash
# Author: Juan Mora
# Arrays & Loops

numeros=(1 2 3 4 5 6 7 8)
textos=(juan luis sara alejandra sofia "juan mora")
rangos=({A..Z} {10..20})

echo "===== Imprimir todos los valores ====="

echo "Arreglo de números: ${numeros[*]}"


echo "Arreglo de textos: ${textos[*]}"
5/8
[Link] 2024-09-06

echo "Arreglo de rangos: ${rangos[*]}"

echo "===== Tamaño de los arreglos ====="

echo "El arreglo de números tiene ${#numeros[*]} elementos"


echo "El arreglo de textos tiene ${#textos[*]} elementos"
echo "El arreglo de rangos tiene ${#rangos[*]} elementos"

echo "===== Imprimir un elemento del arreglo ====="

echo "El primer elemento del arreglo números ${numeros[0]}"


echo "El segundo elemento del arreglo números ${numeros[1]}"
echo "El tercer elemento del arreglo números ${numeros[2]}"

echo "==== Manipular arreglos ====="

unset numeros[0]
echo "Arreglo de números: ${numeros[*]}, se ha eliminado el primer valor"
numeros[0]=1
echo "Arreglo de números: ${numeros[*]}, se ha agregado el primer valor que estaba
con anterioridad"

echo "===== Recorrer arreglos ====="

for i in ${numeros[*]}
do
echo "numero: $i"
done

echo "=======Otra forma de iterar==========="

for ((i=0; i<${#numeros[*]}>; i++))


do
echo "numero: ${numeros[i]}"
done

${[*]} Sintaxis para imprimir todos los valores de un arreglo, con " encerramos los elementos de tipo
texto en caso de ser muy grandes y contengan espacios

Se tienen formas similares de ciclos a for each y el tipico bucle for

Archivos

#!/bin/bash
# Author: Juan Mora
# Manipular archivos

input_type=""
input_name=""
input_text=""

6/8
[Link] 2024-09-06

read -p "Ingrese si desea crear un directorio(1) o un archivo(2): " input_type

if (( $input_type == 1 ));then
read -p "Ingrese el nombre del directorio: " input_name
mkdir -m 777 $input_name #Se crea con los permisos 777
fi
if (( $input_type == 2 ));then
read -p "Ingrese el nombre del archivo, con su extension: " input_name
touch $input_name
read -p "Ingrese un texto para el archivo $input_name: " input_text
echo $input_text >> $input_name
echo "Contenido del archivo: "
cat $input_name
fi

De esta manera se crea un directorio con el nombre puesto en la variable input_name

#!/bin/bash
# Author: Juan Mora
# Lectura de archivos

input_name = $1
echo "========= Lectura de archivos ============"
cat $input_name
echo "========= Lectura de archivos línea por línea ==========="
echo "IFS (INTERNAL FIELD SEPARATOR), para leer línea por línea"
while IFS= read i
do
echo "== $i =="
done < $input_name

Funciones
Ejemplo de función:

#!/bin/bash
# Author: Juan Mora
# Definición y uso de funciones

hola_mundo () {
echo "Hola mundo"
}
# Ingresando parámetros
parametros () {
echo "Hola soy $1 y tengo $2 años"
}

7/8
[Link] 2024-09-06

hola_mundo

read -p "Ingrese su nombre: " nombre


read -p "Ingrese su edad: " edad

parametros $nombre $edad

8/8

También podría gustarte