Shell

Páginas: 17 (4163 palabras) Publicado: 22 de abril de 2013
Shell-Scripts en UNIX

Un shell-Script es un fichero de texto que automatiza tareas al estilo de ficheros batch para DOS. Pueden crearse en cualquier editor de texto o bien con el comando cat.
Su ejecución se realizará de la siguiente forma: sh nombre_script [argumentos], o bien, chmod ugo+x nombre_script, nombre_script.
Uso de variables en shell-script:
Asignación: Nombre=valor
Acceso asu contenido: $Nombre
Podemos utilizar el comando read para leer variables desde teclado y el comando echo para visualizar su contenido (este comando también puede utilizarse para mostrar mensajes por pantalla). Ejemplo:
Read nombre apellido1 apellido2
Echo Los valores leidos por teclado son: $nombre $apellido1 $apellido2

Variables especiales:

$0: Nombre del Shell-Script que se estáejecutando.
$n: Parámetro o argumento pasado al Shell-Script en la posición n, n=1,2,...
$#: Número de argumentos.
$*: Lista de todos los argumentos.
$$: PID del proceso que se está ejecutando.
$!: PID del último proceso ejecutado.
$?: Salida del último proceso ejecutado.

Bucles:

Estructura if

if condicion1
then
comandos si la condicion1 se cumple
elif condicion2
then
comandos sila condición2 se cumple
else
comandos si las condiciones 1 y 2 no se cumplen
fi

Estructura for

for variable in [lista de valores]
do
Comandos
done

Estructura While

while condicion
do
comandos
done

Estructura Until

until condicion
do
comandos
done

Estructura Case

case variable in
patron1) comandos condicion1;;
patron2) comandos condicion2;;
...patron n) comandos condicion n;;
*) comandos si no se cumplen ninguna;;
esac

Especificación de condiciones:

Ficheros

-f  true si fichero existe
-r  true si fichero existe y con derecho de lectura
-w  true si fichero existe y con derecho de escritura
-x  true si fichero existe y con derecho de ejecución
-s  true si fichero existe y no es vacío
-d  true si directorio existeEjemplo: if [ ! –f fichero ]  si el fichero no existe (importante respetar los espacios)

Cadenas

-n  true si longitud cadena distinta 0
-z  true si longitud cadena es 0
=  true si son iguales
!=  true si son distintas

Ejemplo: if [ -n cadena1 ]  Si la longitud de la cadena es distinta de 0
Ejemplo: if [ cadena1 = cadena2 ]  Si las cadenas cadena1 y cadena2 son iguales


Enteros-eq  iguales
-ne  distintos
-gt  dato1 mayor que dato2
-ge  dato1 mayor o igual que dato2
-lt  dato1 menor que dato2
-le  dato1 mejor o igual que dato2

Ejemplo: if [ valor –eq 20 ]  si el valor numérico es un determinado escalar
Ejemplo: if [ valor1 –gt valor2 ]  si el valor1 es mayor que el valor2

Otros comandos de utilidad:

El comando exit se utiliza para salir deun Shell-Script de forma inmediata. Como opción, puede utilizar un número para indicar un estado de salida (la variable $? Contiene la condición de salida devuelta por un último comando).

El comando break se utiliza para formar la salida de un bucle.
break [n], donde n es el número de bucles de los que saldríamos en el caso de que hubiera varios anidados.

El comando continue se utilizapara saltar iteraciones en un bucle.
continue n, hace que se salten tantas iteraciones del bucle como especifique n.

El comando Shift produce un desplazamiento no circular hacia la izquierda de los argumentos pasados al Shell-Script.

Expresiones numéricas:

Las variables en el Shell son por defecto alfanuméricas. Para darles tratamiento numérico debemos recurrir al comando expr queevalúa expresiones aritméticas.

Ejemplo: expr 3 + 4  7

Utilizando comillas simples inversas podemos asignar comandos a variables.

Ejemplo:

Cd
n = `pwd`
echo $n  /localhome/usuario

De esta forma aplicando la sustitución de un comando por su resultado, se puede dar tratamiento numérico al contenido de una variable.



Ejemplo:

a= 3
a= `expr $a +2`
echo $a  5...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • SHELL
  • Shell
  • Shell
  • Shell
  • Shell
  • Shell
  • shell
  • Shell

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS