Sei sulla pagina 1di 12

Cuarto Nivel Sistemas - PUCE SD

CREACION DE SCRIPTS EN LINUX


Definicin de Script: Un script es un archivo que incluye un conjunto de comandos. Son ejecutados desde la primera lnea hasta la ltima (de forma secuencial).

1- .QUE ES EL SHELL SCRIPT?


Un Shell Script es un script para la shell de comandos (terminal). Para crear un script basta con un editar un fichero nuevo y en el nombre poner .sh Ejemplo: HolaMundo.sh Una vez creado, empezamos a editarlo. Se puede utilizar un editor de textos grfico como gedit o un editor en terminal como vim, nano o emacs. En la primera lnea del script se debe indicar que shell que vas a usar ( /bin/bash/ , /usr/ bin/perl , etc ) Aunque da igual la que uses lo importante es el contenido:
#! /bin/bash

#! Se conoce con el nombre de Sha Bang.

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.

Cuarto Nivel Sistemas - PUCE SD

2- .COMO EJECUTAR UN SCRIPT?


Antes de poder ejecutarlo, debemos darle permisos de ejecucin. (+x) por ello, haremos uso del comando chmod y damos permisos de ejecucin, si se desea, se pueden dar a todos los usuarios y grupos.
chmod 755 /ruta_del_script Para el usuario propietario chmod 777 /ruta_del_script Para cualquier usuario

Una vez hecho todo lo anterior, usaremos: ./nombredelscript.sh Pero tambin podemos usar si es un shell script: sh nombredelscript.sh

3- .PASO DE PARMETROS A UN PROGRAMA DE SHELL


A menudo queremos que nuestros programas de shell reciban parmetros desde la lnea de rdenes para hacerlos ms verstiles. Estos parmetros son lo que se conoce como parmetros de posicin. Los parmetros de posicin se pueden usar dentro de un programa de shell como cualquier otra variable de shell; es decir, para saber su valor utilizaremos el smbolo $. Los parmetros dentro del shell script son accesibles utilizando las variables: $0 Representa al parmetro cero o nombre del programa $1 Representa al parmetro uno $2 Representa al parmetro dos $9 Representa al parmetro nueve ${10} Representa al parmetro diez ${11} Representa al parmetro once Ejemplo1: #!/bin/bash
2

Cuarto Nivel Sistemas - PUCE SD

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

4- .ALGUNAS VARIABLES ESPECIALES DEL SHELL

$# 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

Cuarto Nivel Sistemas - PUCE SD

ScriptUno.sh #! /bin/bash clear nombre=Juan apellidos=Lopez echo Te llamas $nombre $apellidos

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

Cuarto Nivel Sistemas - PUCE SD

echo var1 = $var1 echo var2 = $var2 echo var3 = $var3

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.

Cuarto Nivel Sistemas - PUCE SD

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

Cuarto Nivel Sistemas - PUCE SD

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

test (evaluaciones numricas)


Sintaxis: nmero relacin nmero En evaluaciones numricas, esta orden es slo vlida con nmeros enteros. Los operadores usados para comparar nmeros son diferentes de los usados para comparar cadenas. Estos operadores son: -lt -le -gt -ge -eq -ne Menor que Menor o igual que Mayor que Mayor o igual que Igual a No igual a

Cuarto Nivel Sistemas - PUCE SD

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

Cuarto Nivel Sistemas - PUCE SD

Cuarto Nivel Sistemas - PUCE SD

Tener que poner tantos echo es bastante molesto, por eso hay un comando que te ahorra hacer ese esfuerzo (select):

10

Cuarto Nivel Sistemas - PUCE SD

11

Cuarto Nivel Sistemas - PUCE SD

12

Potrebbero piacerti anche