Shell scripts en Linux

Byadmin

Shell scripts en Linux

Un script shell es un fichero de texto tipo plano compuesto por comandos de terminal interpretados por Bash para poder ser ejecutados automáticamente.

Los scripts de shell pueden simplificar comandos complejos en una sola unidad en ejecución y ayudarnos a eliminar tareas repetitivas en uno o varios archivos ejecutables. Los scripts de bash son excelentes para cualquier administrador de sitemas UNIX / Linux puesto que en ocasiones es necesario trabar en la administración sin entorno visual.

¡El uso de shell de Bash en Linux es ilimitado! En este tutorial te mostraremos conceptos básicos para que puedas comenzar a programar tus propios scripts de shell. Puedes comenzar a utilizarlo tanto para administrar servicios, establecer o consultar conexiones de red, crear o modificar carpetas y archivos, automatizar instalaciones de aplicaciones y mucho más.

Para poder ejecutar un script para bash debe de contener en su primera línea lo siguiente:

#!/bin/bash

o bien

#!/usr/bin/env bash

Ejecución del script

Para poder ejecutar un script se debe conceder permisos de ejecución, de no habilitar el permiso de ejecución, el archivo permanecerá como de texto plano.

Puedes crear un archivo de texto plano y denominarlo prueba.sh con las siguientes líneas

#!/bin/bash

echo "Hola mundo"

 

Permisos de ejecución:

Desde la consola de Linux ejecuta los siguientes comandos:

chmod u+x prueba.sh  # permiso de ejecución
./prueba.sh           # Ejecutar el script desde la terminal

 

También podríamos ejectuar el script desde la terminal de Linux con el siguiente comando:

bash prueba.sh

Comentarios

Para poder agregar comentarios dentro del código del shell tienes que agregar al principio de cada línea #

# Esto es un comentario y no será interpretado como comando del script

Variables

Una variable es un espacio de memoria reservado para utilizar información de texto o valor.  Al declarar variables cuando necesites esa información puedes invocarla por su nombre y recuperarla cuando quieras. Para trabajar con una variable necesitas guardar el dato (escribir) y recuperar (leer) para utilizarla.

variable=valor
echo $variable

#!/bin/bash
variable1=Pedro
variable2='Hola $variable1'
echo variable2

Condiciones if

Dentro de un script podemos agregar condiciones lógicas de tipo if then

if [ <condición> ]
then
    # Hacer tal cosa
fi

También podemos representar una condición lógica if de la siguiente manera:

if [ <condición> ]; then
    # Hacer tal cosa
fi

 

Ciclos for

Un ciclo For nos permite iterar una !n cantidad de veces una acción.

#!/bin/bash
for variable in 1 2 3 4
do
   echo "El valor de variable es $variable"
done

El ciclo Flor mostrará tantas veces el valor de la variable como es definido

Ejemplo: Recorrer las líneas de un fichero de texto y mostrarlo en pantalla:

for linea in `cat fichero.txt`
do
   echo "Línea: 
"
done

Entradas y salidas

Desde el script de shell podemos asignar argumentos que se capturan desde la consola (input) para ser capturados y utilizados como variables.

#!/bin/bash
nombre=$1
edad=$2
echo "Nombre: $nombre"
echo "Edad: $edad"

En este ejemplo luego de ejecutar el script el usuario podrá ingresar su nombre y su edad como entradas, las que se mostrarán en pantalla como salida en pantalla.

Script para reemplazar imágenes terminadas en -min.jpg

Este tipo de script es de gran utilidad para reemplazar archivos terminados en -min.jpg

Ejemplo de uso: cuando descargas imágenes optimizadas con Optimizilla la aplicación las renombra con su nombre original junto con la terminación -min.jpg

Con este script te ahorrarás de renombrar las imágenes descargadas manualmente. Renombrará todas las imágenes que se encuentren en la carpeta del script.
En nuestro caso crearemos un script de shell con el nombre rename-min.sh el cua realizará mediante un ciclo for el reemplazo de los archivos terminados en -min.jpg


#!/bin/sh
for f in *.jpg; do
mv -- "$f" "${f%-min.jpg}.jpg"
done

Menú

Si posees varios script para automatizar tus tareas una genial idea es crear un menú con los comandos y scripts más frecuentes.

Todos los script que desas ejecutar desde el menú tienen que estar en la misma carpeta o folder de menu.sh

En nuestro caso agregamos rename-min.sh como opción 4 del menú como ejemplo de invocación de un script dentro de otro script.

 


#!/bin/bash
clear
while :
do
echo "MENU"
echo "1. Estado de servicio httpd"
echo "2. Ping a tarjeta de red (Salir con Ctrl + c)"
echo "3. Mostrar conexiones de redes, puertos y servicios"
echo "4. Renombrar imágenes terminadas en -min.jpg"
echo "5. Limpiar pantalla"
echo "6. Salir"
echo -n "Seleccione una opcion [1 - 6]"
read opcion
case $opcion in
1) ./service-status.sh;;
2) ping 127.0.0.1;;
3) netstat -putona;;
4) ./rename-min.sh;;
5) clear;;
6) echo "bye bye";
exit 1;;
*) echo "$opc ES UNA OPCIONES ERRONEA";
echo "Presiona una tecla para continuar...";
read foo;;
esac
done

About the author

admin administrator

Leave a Reply