SlideShare a Scribd company logo
1 of 12
Download to read offline
Cuarto Nivel Sistemas - PUCE SD




               CREACION DE SCRIPTS EN LINUX
Definición de Script: Un script es un archivo que incluye un conjunto de
comandos.
Son ejecutados desde la primera línea 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
gráfico como gedit o un editor en terminal como vim, nano o emacs.


En la primera línea 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
función es indicarle al sistema que se trata de un conjunto de comandos para que
sean interpretados. En realidad, es un número mágico de dos bytes. El número
mágico 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 línea que deseéis poner un
comentario, lo primero que debe tener es #. Es importante añadir comentarios
comentando la utilidad del script o las variables que se crean.




                                                                                     1
Cuarto Nivel Sistemas - PUCE SD


2- .COMO EJECUTAR UN SCRIPT?
Antes de poder ejecutarlo, debemos darle permisos de ejecución. (+x) por ello,
haremos uso del comando chmod y damos permisos de ejecución, 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 también podemos usar si es un shell script:
sh nombredelscript.sh




3- .PASO DE PARÁMETROS A UN PROGRAMA DE SHELL

A menudo queremos que nuestros programas de shell reciban parámetros desde
la línea de órdenes para hacerlos más versátiles. Estos parámetros son lo que se
conoce como parámetros de posición. Los parámetros de posición se pueden usar
dentro de un programa de shell como cualquier otra variable de shell; es decir,
para saber su valor utilizaremos el símbolo $. Los parámetros dentro del shell
script son accesibles utilizando las variables:
$0 Representa al parámetro cero o nombre del programa
$1 Representa al parámetro uno
$2 Representa al parámetro dos
…
$9 Representa al parámetro nueve
${10} Representa al parámetro diez
${11} Representa al parámetro once
…
Ejemplo1:
#!/bin/bash
                                                                                 2
Cuarto Nivel Sistemas - PUCE SD


echo El nombre del programa es $0
echo El primer parámetro recibido es $1
echo El segundo parámetro recibido es $2
echo El tercer parámetro recibido es $3
echo El cuarto parámetro recibido es $4




4- .ALGUNAS VARIABLES ESPECIALES DEL SHELL


$# Número de parámetros que han pasado a la shell.
$* Un argumento que contiene todos los parámetros que se han pasado ($1, $2...)
menos el $0.
$? Número donde se almacena el código de error del último comando que se ha
ejecutado.
$$ Número de proceso actual (PID)
$! Último número de proceso ejecutado.


Prueba1.sh
#!/bin/bash
echo El nombre del programa es $0
echo El número total de parámetros es $#
echo Todos los parámetros recibidos son $*
echo El primer parámetro recibido es $1
echo El segundo parámetro recibido es $2
echo El tercer parámetro recibido es $3
echo El cuarto parámetro 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 información escrita en el terminal de forma
interactiva. Si hay más variables en la orden read que palabras escritas, las
variables que sobran por la derecha se asignan a NULL. Si se introducen más
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 opción –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 evalúa sus argumentos y escribe el
resultado en la salida estándar. El uso más común de esta orden es para efectuar
operaciones de aritmética simple y, en menor medida, para manipular cadenas.



Operadores aritméticos
       + Suma arg2 a arg1
       - Resta arg2 a arg1
       * Multiplica los argumentos
       / Divide arg1 entre arg2 (división entera)
       % Resto de la división entera entre arg1 y arg2



•   En el caso de utilizar varios operadores, las operaciones de suma y resta se
    evalúan en último lugar, a no se que vayan entre paréntesis.
•   No hay que olvidar que los símbolos *, ( y ) tienen un significado especial para
    el shell y deben ser precedidos por el símbolo backslash (  ) o encerrados
    entre comillas simples.




                                                                                   5
Cuarto Nivel Sistemas - PUCE SD


Ejemplo:
#!/bin/bash
#script que multiplica dos variables leídas desde teclado
echo “Multiplicación 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 multiplicación es =$resultado


El resultado de ejecutar el programa anterior es el producto de las dos variables
leídas desde el teclado.


Operadores relacionales
Estos operadores se utilizan para comparar dos argumentos. Los argumentos
pueden ser también palabras. Si el resultado de la comparación 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 función de los
resultados de la comparación. Los distintos tipos de operadores relacionales son:




Operadores lógicos
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 lógicos tenemos los siguientes:
|      Or lógico. Si el valor de arg1 es distinto de cero, el resultado es arg1; si no
es así, el resultado es arg2.
&      And lógico. Si arg1 y arg2 son distintos de cero, el resultado es arg1; si no
es así, el resultado es arg2.
:      El arg2 es el patrón buscado en arg1. Si el patrón arg2 está encerrado
dentro de paréntesis ( ), el resultado es la parte de arg1 que coincide con arg2. Si
no es así, el resultado es simplemente el número 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 número de caracteres de la cadena a.
$a=palabra
$b=`expr $a : “.*”`
$echo $b


test (evaluaciones numéricas)
Sintaxis: número relación número
En evaluaciones numéricas, esta orden es sólo válida con números enteros. Los
operadores usados para comparar números son diferentes de los usados para
comparar cadenas. Estos operadores son:
              -lt     Menor que
              -le     Menor o igual que
              -gt     Mayor que
              -ge     Mayor o igual que
              -eq     Igual a
              -ne     No igual a



                                                                                     7
Cuarto Nivel Sistemas - PUCE SD


Hay unos cuantos operadores que son válidos en una expresión de la orden test a
la hora de evaluar tanto archivos como cadenas o números. Estos operadores son
llamados conectores y son:
            -o     OR
            -a     AND
            !      NOT



7- .Estructuras condicionales




                                                                               8
Cuarto Nivel Sistemas - PUCE SD




                             9
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

More Related Content

What's hot

What's hot (20)

Curso Bash 3
Curso Bash 3Curso Bash 3
Curso Bash 3
 
Introducción a shell script
Introducción a shell scriptIntroducción a shell script
Introducción a shell script
 
Perl4 io
Perl4 ioPerl4 io
Perl4 io
 
Lenguaje c ++ guía para programadores
Lenguaje c ++  guía para programadoresLenguaje c ++  guía para programadores
Lenguaje c ++ guía para programadores
 
Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)Instalar Python 2.7 y 3 en Windows (Anaconda)
Instalar Python 2.7 y 3 en Windows (Anaconda)
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
Python 4
Python 4Python 4
Python 4
 
Compilador divisor de cantidades con Jflex y Cup
Compilador divisor de cantidades con Jflex y CupCompilador divisor de cantidades con Jflex y Cup
Compilador divisor de cantidades con Jflex y Cup
 
Proyecto de compiladores Sentencia While con Java CUP y JFLEX
Proyecto de compiladores Sentencia While con Java CUP y JFLEXProyecto de compiladores Sentencia While con Java CUP y JFLEX
Proyecto de compiladores Sentencia While con Java CUP y JFLEX
 
Compilacion Perl
Compilacion PerlCompilacion Perl
Compilacion Perl
 
Archivos de Cabecera.
Archivos de Cabecera.Archivos de Cabecera.
Archivos de Cabecera.
 
Perl
PerlPerl
Perl
 
Estructura basica para c++
Estructura basica para c++Estructura basica para c++
Estructura basica para c++
 
Estructura básica de un programa en C++
Estructura básica de un programa en C++Estructura básica de un programa en C++
Estructura básica de un programa en C++
 
Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_
 
Estructura de Programa en C++
Estructura de Programa en C++Estructura de Programa en C++
Estructura de Programa en C++
 
bibliotecas c++
bibliotecas c++bibliotecas c++
bibliotecas c++
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_
 
Libreria c++
Libreria c++Libreria c++
Libreria c++
 

Similar to Creacion de scripts en linux

Similar to Creacion de scripts en linux (20)

4072954.ppt
4072954.ppt4072954.ppt
4072954.ppt
 
Script presentacion
Script presentacionScript presentacion
Script presentacion
 
Programación en Perl
Programación en PerlProgramación en Perl
Programación en Perl
 
Php
PhpPhp
Php
 
Python guia01 1
Python guia01 1Python guia01 1
Python guia01 1
 
EXPO PERL UTT
EXPO PERL UTTEXPO PERL UTT
EXPO PERL UTT
 
Trabajo case
Trabajo caseTrabajo case
Trabajo case
 
Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_Curso lenguaje c_segundo_modulo_
Curso lenguaje c_segundo_modulo_
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Agilidad en shell de linux
Agilidad en shell de linuxAgilidad en shell de linux
Agilidad en shell de linux
 
Perl1 escalares
Perl1 escalaresPerl1 escalares
Perl1 escalares
 
Taller de Shell Scripting
Taller de Shell ScriptingTaller de Shell Scripting
Taller de Shell Scripting
 
Bt haskell-1
Bt haskell-1Bt haskell-1
Bt haskell-1
 
Script Linux
Script LinuxScript Linux
Script Linux
 
Administración básica de ubuntu server parte 3
Administración básica de ubuntu server   parte 3Administración básica de ubuntu server   parte 3
Administración básica de ubuntu server parte 3
 
Variables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeIntVariables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeInt
 
Estadística con Lenguaje R: Sesión 8
Estadística con Lenguaje R: Sesión 8Estadística con Lenguaje R: Sesión 8
Estadística con Lenguaje R: Sesión 8
 
Introducción a php
Introducción a phpIntroducción a php
Introducción a php
 
Grupo 6 turbopascal apesteguia (1)
Grupo 6 turbopascal apesteguia (1)Grupo 6 turbopascal apesteguia (1)
Grupo 6 turbopascal apesteguia (1)
 
Python_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxPython_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptx
 

Creacion de scripts en linux

  • 1. Cuarto Nivel Sistemas - PUCE SD CREACION DE SCRIPTS EN LINUX Definición de Script: Un script es un archivo que incluye un conjunto de comandos. Son ejecutados desde la primera línea 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 gráfico como gedit o un editor en terminal como vim, nano o emacs. En la primera línea 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 función es indicarle al sistema que se trata de un conjunto de comandos para que sean interpretados. En realidad, es un número mágico de dos bytes. El número mágico 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 línea que deseéis poner un comentario, lo primero que debe tener es #. Es importante añadir comentarios comentando la utilidad del script o las variables que se crean. 1
  • 2. Cuarto Nivel Sistemas - PUCE SD 2- .COMO EJECUTAR UN SCRIPT? Antes de poder ejecutarlo, debemos darle permisos de ejecución. (+x) por ello, haremos uso del comando chmod y damos permisos de ejecución, 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 también podemos usar si es un shell script: sh nombredelscript.sh 3- .PASO DE PARÁMETROS A UN PROGRAMA DE SHELL A menudo queremos que nuestros programas de shell reciban parámetros desde la línea de órdenes para hacerlos más versátiles. Estos parámetros son lo que se conoce como parámetros de posición. Los parámetros de posición se pueden usar dentro de un programa de shell como cualquier otra variable de shell; es decir, para saber su valor utilizaremos el símbolo $. Los parámetros dentro del shell script son accesibles utilizando las variables: $0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos … $9 Representa al parámetro nueve ${10} Representa al parámetro diez ${11} Representa al parámetro once … Ejemplo1: #!/bin/bash 2
  • 3. Cuarto Nivel Sistemas - PUCE SD echo El nombre del programa es $0 echo El primer parámetro recibido es $1 echo El segundo parámetro recibido es $2 echo El tercer parámetro recibido es $3 echo El cuarto parámetro recibido es $4 4- .ALGUNAS VARIABLES ESPECIALES DEL SHELL $# Número de parámetros que han pasado a la shell. $* Un argumento que contiene todos los parámetros que se han pasado ($1, $2...) menos el $0. $? Número donde se almacena el código de error del último comando que se ha ejecutado. $$ Número de proceso actual (PID) $! Último número de proceso ejecutado. Prueba1.sh #!/bin/bash echo El nombre del programa es $0 echo El número total de parámetros es $# echo Todos los parámetros recibidos son $* echo El primer parámetro recibido es $1 echo El segundo parámetro recibido es $2 echo El tercer parámetro recibido es $3 echo El cuarto parámetro recibido es $4 HolaMundo.sh #! /bin/bash clear echo “Hola mundo ,este es mi primer script” 3
  • 4. 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 información escrita en el terminal de forma interactiva. Si hay más variables en la orden read que palabras escritas, las variables que sobran por la derecha se asignan a NULL. Si se introducen más 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 opción –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
  • 5. 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 evalúa sus argumentos y escribe el resultado en la salida estándar. El uso más común de esta orden es para efectuar operaciones de aritmética simple y, en menor medida, para manipular cadenas. Operadores aritméticos + Suma arg2 a arg1 - Resta arg2 a arg1 * Multiplica los argumentos / Divide arg1 entre arg2 (división entera) % Resto de la división entera entre arg1 y arg2  • En el caso de utilizar varios operadores, las operaciones de suma y resta se evalúan en último lugar, a no se que vayan entre paréntesis. • No hay que olvidar que los símbolos *, ( y ) tienen un significado especial para el shell y deben ser precedidos por el símbolo backslash ( ) o encerrados entre comillas simples. 5
  • 6. Cuarto Nivel Sistemas - PUCE SD Ejemplo: #!/bin/bash #script que multiplica dos variables leídas desde teclado echo “Multiplicación 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 multiplicación es =$resultado El resultado de ejecutar el programa anterior es el producto de las dos variables leídas desde el teclado. Operadores relacionales Estos operadores se utilizan para comparar dos argumentos. Los argumentos pueden ser también palabras. Si el resultado de la comparación 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 función de los resultados de la comparación. Los distintos tipos de operadores relacionales son: Operadores lógicos 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
  • 7. Cuarto Nivel Sistemas - PUCE SD Como operadores lógicos tenemos los siguientes: | Or lógico. Si el valor de arg1 es distinto de cero, el resultado es arg1; si no es así, el resultado es arg2. & And lógico. Si arg1 y arg2 son distintos de cero, el resultado es arg1; si no es así, el resultado es arg2. : El arg2 es el patrón buscado en arg1. Si el patrón arg2 está encerrado dentro de paréntesis ( ), el resultado es la parte de arg1 que coincide con arg2. Si no es así, el resultado es simplemente el número 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 número de caracteres de la cadena a. $a=palabra $b=`expr $a : “.*”` $echo $b test (evaluaciones numéricas) Sintaxis: número relación número En evaluaciones numéricas, esta orden es sólo válida con números enteros. Los operadores usados para comparar números son diferentes de los usados para comparar cadenas. Estos operadores son: -lt Menor que -le Menor o igual que -gt Mayor que -ge Mayor o igual que -eq Igual a -ne No igual a 7
  • 8. Cuarto Nivel Sistemas - PUCE SD Hay unos cuantos operadores que son válidos en una expresión de la orden test a la hora de evaluar tanto archivos como cadenas o números. Estos operadores son llamados conectores y son: -o OR -a AND ! NOT 7- .Estructuras condicionales 8
  • 9. Cuarto Nivel Sistemas - PUCE SD 9
  • 10. 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
  • 11. Cuarto Nivel Sistemas - PUCE SD 11
  • 12. Cuarto Nivel Sistemas - PUCE SD 12