Guia de Shell Scripting Avanzado - Variables en Bash

3 - Variables en Bash

[editar]
Monografía creado por David F. Madrid. Extraido de: http://www.nautopia.net/archives/es/linux_programacion/guia_de_shell_scripting_avanzado/introduccion.php
11 de Octubre de 2005
Las variables en Bash se representan con el símbolo $ y son débilmente tipadas, es decir, Bash determina al ejecutar el script si debe tratar la variable como cadena o como entero. Para declarar una variable sólo necesitamos asignarle un valor

#!/bin/sh

ruta="/var/www"
echo $ruta

Si queremos asignarle el resultado de la salida de un comando lo podemos hacer con entrecomillado o incluyendo el comando entre paréntesis y antecediéndolo de $:

#!/bin/sh

mivar=`ls -lh`
echo $mivar

mivar2=$(ls -lh)
echo $mivar2


Podemos declarar arrays asignándoles valores y referenciarlas como una cadena o con subíndices para a los elementos:

#!/bin/sh
rutas=(/var/www /var/smtp /var/popd)
echo Ruta número dos ${rutas[1]}
echo El número de elementos en el array es ${#rutas}

Como se puede ver, podemos llamar a la variable array anteponiendo el carácter # para ver la longitud del mismo.

Cuando ejecutamos un script en Bash la línea de comandos que hemos introducido se guarda en unas variables especiales a las que podemos hacer referencia.La variable $0 hace referencia al nombre del comando, la $1 al primer argumento, la $2 al segundo, etc. La variable $@ hace referencia a todos los argumentos separados por espacios introducidos:

#!/bin/sh
echo "El nombre del comando es $0 y el primer argumento es $1"
echo "Los argumentos introducidos son $@"


Ejecutado este script con un argumento el resultado sería:

# ./miscript /dev/hda -f
El nombre del comando es ./miscript y el primer argumento es /dev/hda
Los argumentos introducidos son /dev/hda -f


Otra variable especial es $? que almacena el valor de salida devuelto por el último comando ejecutado por el script.

#!/bin/sh

# Comprueba si el archivo que se le pasa por argumento contiene la
#cadena linux

touch $1
egrep -i "linux" $1

if
then
echo "egrep devuelve $? cuando se ejecuta con éxito"
else

echo "egrep devuelve $? cuando no se ejecuta con éxito"
fi

[editar]

Sé el primero en opinar


Monografías relacionados con 'Guia de Shell Scripting Avanzado'

Una shell es un programa encargado de hacer de interfaz entre el usuario y el... Más »

Autor y licencia de 'Guia de Shell Scripting Avanzado'

This article is licensed under a Creative Commons License
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.