Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Se denomina sha-bang a la secuencia #! con la que se inician los scripts. Su funcin es indicarle al sistema que se trata de un conjunto de comandos para que sean interpretados. En realidad, es un nmero mgico de dos bytes. El nmero mgico es un marcador especial para indicar el tipo de archivo, en este caso, indica que se trata de un script de shell ejecutable. Para introducir comentarios se debe poner #. Por cada lnea que deseis poner un comentario, lo primero que debe tener es #. Es importante aadir comentarios comentando la utilidad del script o las variables que se crean.
Una vez hecho todo lo anterior, usaremos: ./nombredelscript.sh Pero tambin podemos usar si es un shell script: sh nombredelscript.sh
echo El nombre del programa es $0 echo El primer parmetro recibido es $1 echo El segundo parmetro recibido es $2 echo El tercer parmetro recibido es $3 echo El cuarto parmetro recibido es $4
$# Nmero de parmetros que han pasado a la shell. $* Un argumento que contiene todos los parmetros que se han pasado ($1, $2...) menos el $0. $? Nmero donde se almacena el cdigo de error del ltimo comando que se ha ejecutado. $$ Nmero de proceso actual (PID) $! ltimo nmero de proceso ejecutado.
Prueba1.sh #!/bin/bash echo El nombre del programa es $0 echo El nmero total de parmetros es $# echo Todos los parmetros recibidos son $* echo El primer parmetro recibido es $1 echo El segundo parmetro recibido es $2 echo El tercer parmetro recibido es $3 echo El cuarto parmetro recibido es $4 HolaMundo.sh #! /bin/bash clear echo Hola mundo ,este es mi primer script
3
5- .READ
Sintaxis: read variable (s) La orden read se usa para leer informacin escrita en el terminal de forma interactiva. Si hay ms variables en la orden read que palabras escritas, las variables que sobran por la derecha se asignan a NULL. Si se introducen ms palabras que variables haya, todos los datos que sobran por la derecha se asignan a la ltima variable de la lista.
Ejemplo1: #!/bin/bash #script ej_read #La opcin n se emplea para evitar el retorno de carro echo n Introduce una variable: read var echo La variable introducida es: $var
Ejemplo5: #!/bin/bash #script ej_read_var que lee varias variables con read echo n Introduce las variables: read var1 var2 var3 echo Las variables introducidas son:
4
6- .EXPR
Sintaxis: expr arg1 op arg2 [op arg3 ] Los argumentos de la order expr se toman como expresiones y deben ir separados por blancos. La orden expr evala sus argumentos y escribe el resultado en la salida estndar. El uso ms comn de esta orden es para efectuar operaciones de aritmtica simple y, en menor medida, para manipular cadenas.
Operadores aritmticos
+ Suma arg2 a arg1 - Resta arg2 a arg1 * Multiplica los argumentos / Divide arg1 entre arg2 (divisin entera) % Resto de la divisin entera entre arg1 y arg2
En el caso de utilizar varios operadores, las operaciones de suma y resta se evalan en ltimo lugar, a no se que vayan entre parntesis. No hay que olvidar que los smbolos *, ( y ) tienen un significado especial para el shell y deben ser precedidos por el smbolo backslash ( \ ) o encerrados entre comillas simples.
Ejemplo: #!/bin/bash #script que multiplica dos variables ledas desde teclado echo Multiplicacin de dos variables echo ------------------------------- echo n Introduce la primera variable: read var1 echo n Introduce la segunda variable: read var2 resultado=`expr $var1 \* $var2` echo El resultado de la multiplicacin es =$resultado
El resultado de ejecutar el programa anterior es el producto de las dos variables ledas desde el teclado.
Operadores relacionales
Estos operadores se utilizan para comparar dos argumentos. Los argumentos pueden ser tambin palabras. Si el resultado de la comparacin es cierto, el resultado es uno (1); si es falso, el resultado es cero (0). Estos operadores se utilizan mucho para comparar operandos y tomar decisiones en funcin de los resultados de la comparacin. Los distintos tipos de operadores relacionales son:
Operadores lgicos
Estos operadores se utilizan para comparar dos argumentos. Dependiendo de los valores, el resultado puede ser arg1 (o alguna parte de l), arg2 o cero.
6
Como operadores lgicos tenemos los siguientes: | Or lgico. Si el valor de arg1 es distinto de cero, el resultado es arg1; si no
es as, el resultado es arg2. & And lgico. Si arg1 y arg2 son distintos de cero, el resultado es arg1; si no
es as, el resultado es arg2. : El arg2 es el patrn buscado en arg1. Si el patrn arg2 est encerrado
dentro de parntesis \( \), el resultado es la parte de arg1 que coincide con arg2. Si no es as, el resultado es simplemente el nmero de caracteres que coinciden.
Ejemplo: En este ejemplo incrementamos en una unidad el valor de la variable a. $a=5 $a=`expr $a + 1 ` $echo $a
Ejemplo: En este ejemplo calculamos el nmero de caracteres de la cadena a. $a=palabra $b=`expr $a : .*` $echo $b
Hay unos cuantos operadores que son vlidos en una expresin de la orden test a la hora de evaluar tanto archivos como cadenas o nmeros. Estos operadores son llamados conectores y son: -o -a ! OR AND NOT
7- .Estructuras condicionales
Tener que poner tantos echo es bastante molesto, por eso hay un comando que te ahorra hacer ese esfuerzo (select):
10
11
12