La primera línea de un script de shell debe indicar el intérprete de shell (también conocido como ) que se utilizará para ejecutarlo. Para Bash, esto significa
1#!/bin/bash
bash
La línea anterior debe ser seguida por los comandos que deben ser ejecutados por la cáscara, uno por línea. Aunque las preferencias entre los administradores del sistema pueden variar, los shell scripts eficaces y bien mantenidos suelen incluir las siguientes secciones:
Cabecera
El encabezado del guión es una sección comentada donde el desarrollador puede incluir elementos como:
- Descripción/propósito del guión
- Historia de la revisión
- Términos de la licencia y/o aviso de copyright
El proyectil ignora las líneas en blanco y comentadas. Las primeras sólo sirven de información para el autor, otros revisores y la gente que usa el programa. Para comentar una línea, simplemente coloque un signo # al principio.
Un encabezado común se ve así:
sh# PROPÓSITO: Demostrar conceptos simples de programación de Bash# HISTORIA DE LA REVISIÓN:# DETALLES DE LA FECHA DEL AUTOR# ——————— ————— —————————————-# Gabriel A. Cánepa 2017-10-21 Versión inicial# LICENCIA: CC Attribution-ShareAlike 4.0 International# ==============================================================================
bash
Cuerpo
El cuerpo del guión es donde se coloca la secuencia de comandos, uno por línea. Un comando puede ser ejecutado directamente por el shell o hacer que su salida se guarde en un contenedor conocido como variable . Se puede pensar en las variables como cajas donde podemos almacenar un valor fijo (como el texto o un número) o la salida de un comando, para su posterior reutilización.
Como práctica óptima, los administradores de sistemas suelen utilizar comentarios en el cuerpo para indicar lo que se supone que debe hacer una determinada línea de código. Esto también sirve como un recordatorio para sí mismo y para otros que más tarde trabajarán en el mismo archivo.
Para almacenar la salida de un comando en una variable, encierre el comando entre paréntesis y póngales el prefacio con el signo de dólar. Así, en MYVAR=$(comando), la variable MYVAR contiene la salida de comando, donde comando puede ser cualquier comando ejecutado por el shell. Para usar el contenido de MYVAR en el script, añade $MYVAR donde sea necesario.
Por ejemplo:
12345678910111213141516echo "Empezando a ejecutar el guión... "VARIABLE ASSIGNMENT" # Mostrar nombre de host_HOST=$(nombre de host)# Usuario ejecutando el script_CURRENTUSER=$(whoami)# Fecha actual_CURRENTDATE=$(fecha +%F)# Dirección IP del host: IPADDRESS=$(hostname -I |cut -d $0027 $0027 -f1)# Mostrar mensajeecho "Hoy es $CURRENTDATE "echo "Hostname: $HOST ($IPADDRESS) "echo "Información de usuario para $CURRENTUSER: "grep$CURRENTUSER /etc/passwd
bash
Pongamos todo junto (#!/bin/bash, cabecera y cuerpo) y guardemos como systeminfo.sh . A continuación, haz el archivo ejecutable y ejecútalo:
12chmod a+x systeminfo.sh./systeminfo.sh
bash
La siguiente imagen muestra la salida del guión:
Como pueden ver en la imagen de arriba, el eco Bash incorporado nos permite incrustar variables y texto fijo dentro de las comillas. Así, el contenido de la(s) variable(s) dada(s) será parte de la salida, junto con el texto.