Inicio / Wikis / Monografías / Guia de Shell Scripting Avanzado - Comandos nativos de Bash

Guia de Shell Scripting Avanzado - Comandos nativos de Bash

11 de Octubre de 2005
Linux

5 - Comandos nativos de Bash

Podemos llamar comandos nativos a falta de una mejor traducción a Built-in a los comandos que han sido incluídos en el propio código del intérprete para un mejor rendimiento. Son muchos, para una referencia completa consultad la página man de Bash. Algunos de los más útiles pueden ser:

alias
Con el comando alias podemos definir un identificador que podemos asociar a un comando con argumentos.

#!/bin/sh

alias ls='ls -lh --color=always'
dir=$1

if [ -d $dir ]
then
echo "El contenido del directorio $dir es"
echo "`ls $dir`"
fi

cd
Podemos usar cd para cambiar el directorio en el que trabaja nuestro script de igual forma que lo usamos en la línea de comandos.

pwd
Muestra la ruta del directorio actual

test
El comando test o [ ] abreviado se utiliza para comparar valores y comprobar la existencia de archivos,directorios,enlaces dispositivos y es una auténtica navaja suiza. Devuelve 1 si la expresión se evalúa como cierta. Las opciones de test que podemos establecer para controlar su comportamiento son las podemos encontrar en la man de test, aquí podemos ver algunos de los usos de test con un ejemplo:

#!/bin/sh


# Comprueba como son dos números pasados como argumento

if [ ${#@} -ne 2 ]
then
echo Debe introducir dos números
exit 1
fi

if [ $1 -lt $2 ]
then
echo $1 es menor que $2
exit 0
else if [ $1 -gt $2 ]
then
echo $1 es mayor que $2
exit 0
fi
echo $1 y $2 son iguales
exit 0
fi
#!/bin/sh
# Comprueba si existe el elemento pasado como argumento y devuelve

# lo que es

archivo=$1

if [ -e $archivo ]
then
echo Existe el archivo $archivo
else
echo No existe el archivo $archivo
exit 1
fi

if [ -h $archivo ]
then
echo $archivo es un enlace simbólico
else if [ -d $archivo ]
then
echo $archivo es un directorio
fi
fi

Eval
Con eval podemos evaluar una expresión o serie de comandos y asignar el resultado a una variable

#!/bin/sh

variable="eval ls -lh"
echo $variable

getopts
Con este comando podemos procesar la entrada que se le pasa a un script de forma sencilla. Para usarla sólo tenemos que meterla en un bucle while y diferenciar entre opciones que requieren un argumento y las que no.

#!/bin/sh

while getopts b:c:a miopt
do
case $miopt in
a) selecta=1 ;;
b) opt2="$OPTARG" ;;
c) opt1="$OPTARG" ;;
?) echo "Uso: ejemplo -b algo [-c algo] [-a]"
exit 1;;
esac
done

if [ -n "$opt2" ]
then
echo Se ha introducido -b $opt2
else
echo Debe introducir -b con un argumento
exit 1
fi

if [ -n "$selecta" ] && [ -n "$opt1" ]
then
echo Se ha introducido -c $opt1
fi

Como vemos las opciones que requieren un parámetro se le indican a getopts poniendo un : a su derecha y el valor del parámetro lo podemos recuperar accediendo a la variable $OPTARG

read
Con el comando read podemos leer valores de la entrada stándard y asignárlos a variables.

#!/bin/sh

alias ls='ls -lh --color=always'

echo "introduce un directorio"
read dir

if [ -d $dir ]
then
echo "El contenido del directorio es $dir"
echo "`ls $dir`"
fi

popd
Extrae un elemento de la pila de directorios y cambia el directorio actual al elemento puntero de pila.

pushd
Almacena un elemento en la pila de directorios y cambia el directorio actual a ese elemento,

#!/bin/sh

cd /
echo "Estamos en `pwd`"

pushd usr
pushd local
echo "Estamos en `pwd`"

ls -lh

popd
popd
echo "Estamos en `pwd`"
ls -lh

Como rareza comentar que Bash permite acceder mediante /dev/tcp y /dev/udp a conexiones tcp y udp con un servidor. Después de iniciar el subsistema tcp/ip se puede leer/escribir como si fuese la entrada estándar. Aquí teneis un ejemplo que lee lo último publicado en nautopia y lo envía a nuestra tty:

#!/bin/sh

exec 3<>$1

printf "GET / HTTP/1.1\n" >&3
printf "HOST:www.nautopia.net\n" >&3
printf "\n\n">&3

echo "Novedades en Nautopia"

while read hola <&3
do
titulo=`echo $hola | sed -r "s/(.*

)(.*)(<\/h3>.*)/\2/"` echo $titulo > /dev/tty do

Valora este capítulo:
Autor y licencia de 'Guia de Shell Scripting Avanzado - Comandos nativos de Bash'
David F. Madrid Extraído de: http://www.nautopia.net/archives/es/linux_programacion/guia_de_shell_scripting_avanzado/introduccion.php

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
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.

Opiniona sobre 'Guia de Shell Scripting Avanzado - Comandos nativos de Bash' (0)

Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.

Opina sobre este monografía



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'Guia de Shell Scripting Avanzado - Comandos nativos de Bash'

Es muy fácil crear archivos en el sistema operativo UNIX. Por lo tanto, los usuarios... Más »
Esta guía no es un documento general de seguridad. Esta guía está específicamente orientada a... Más »
Esta guía rápida explica cómo instalar y configurar Iptables con soporte H323. Se basa en... Más »
Esta guía tiene por objetivo dar respuestas muy claras y concretas a los problemas que... Más »
Hablar de redes de ordenadores siempre implica hablar de Unix. Por supuesto, Unix no es... Más »
¿Estás seguro de que deseas eliminar este capítulo?