Shell Scripting
Bueno antes que nada unos conceptos basicos para el que no sepa :
¿Que es Shell?
Shell:
Intérprete de comandos.
Modo de interacción entre el usuario y el Kernel.
Es un poderoso ambiente de programación.
Permite la creación de scripts (shell scripts).
¿Y Shell script?
Shell script:
Agrupamiento de sentencias de shell con un fin en común.
Archivo de texto plano que puede ser visualizado con un editor.
La programación en shell surgió como respuesta a las tareas que los
administradores realizaban secuencialmente para conseguir hacer algo con
el sistema.
Lo que se hace es ejecutar secuencialmente órdenes en el intérprete de
comandos sin tener que escribirlos a mano.
Si escribimos en una terminal
nos dira que shell estamos ejecutando
Nuestro primer script : Hola Mundo
Usamos un editor y creamos el fichero miprimerscript.sh:
#!/bin/bash
echo “Hola mundo!!”
Con #! en la primera línea indicamos quién debería interpretar los
comandos (/bin/bash).
Posteriormente escribimos los comandos separados por saltos de línea.
Ejecucion del script
El script debe tener permisos de ejecución para el
usuario.Para otorgarlos le damos click secundario al archivo , vamos a la pestañas permisos y marcamos ejecucion o desde terminal con chmod 755 nombredelscript.
Modo 1:
./script
Modo 2: (modo debug , ver que hace en cada paso , generalmente para buscar errores)
bash –x script
Variables
Una variable tiene un nombre y un valor, y sirve para dotar de dinamismo a
nuestros scripts:
#!/bin/bash
FECHA=$(date)
echo "Hola mundo!!"
echo "Hoy es:"; echo $FECHA
FECHA es el nombre de la variable.
$FECHA es su valor.
Para asignar un valor, se utiliza “=”.
Variables Interactividad
Para poder hacer entrada de datos, podemos ejecutar el comando:
read VARIABLE. Con esto, lo que escriba el usuario será almacenado
en la variable VARIABLE. Ejemplo:
#!/bin/bash
echo -n "Introduzca algo:"
read VARIABLE
echo "Has tecleado: $VARIABLE"
Variables Argumentos
Se pueden enviar argumentos al momento de la invocación del script:
$1, $2, $3... ${10}, ${11}: argumentos (parámetros).
shift
: permite hacer un corrimiento de parámetros a izquierda. ($1
ahora vale lo que valía $2, $2 lo que valía $3, etc. $0 no cambia).
$0: Nombre del script.
Es posible pasar los parámetros o argumentos que queramos y
utilizarlos dentro del script. Por ejemplo:
#!/bin/sh
#notese que aca se usa la shell sh pero puede usarse cualquier otra
echo “Primer Nombre: $1”
echo “Segundo Nombre: $2”
echo “Apellido: $3”
Lo ejecutamos: ./nombre.sh Juan Pablo Salinas
En donde $1 es juan , $2 es pablo y $3 salinas
Variables Argumentos especiales
$*: todos los argumentos. “$*” = “$1 $2 $3...” (se usa para iterar).
$@: todos los argumentos. “$@” = “$1” “$2” “$3”...
$_: comando anteriormente ejecutado.
$#: número de argumentos que nos han pasado.
Variables y comandos
Es posible almacenar en una variable el resultado de la ejecución
de un comando.
Con $(): anidable
LISTADO=$(ls)
LISTADO=$(ls $(cat directorios.txt))
Operadores
== (igual en strings)
a (and)
o (or)
!= (distintos en strings)
eq (es igual Números)
ne (es distinto Números)
lt (menor que)
g (mayor que)
le (menor o igual)
ge (mayor o igual)
e nombre (si existe directorio, archivo, etc.)
d dir (si dir es un directorio)
f file (si file es un archivo)
r file (si para file tengo permiso de lectura)
w file (si para file tengo permiso de escritura)
x file (si para file tengo permiso de ejecución)
Condicionales (if)
if:
if [ expresion ]
then
comandos
else
comandos
fi
Un ejemplo :
PREGUNTAR="SI"
if [ $PREGUNTAR == "SI" ]
then
echo "Me han pedido que te pregunte cual es tu nombre?"
else
echo "No me apetece saber como te llamas"
fi
Case
case $VARIABLE in
patron1 )
comandos1
;;
patron2 )
comandos2
;;
patron3 )
comandos3
;;
esac
Estructuras iterativas
For:
for variable in lista
do
comandos
done
While :
while [ condición ]
do
comando1
comando2
comando3
....
done
ejemplo de while :
SALIR=0
while [ ! $SALIR ]
do
if [ ]
then
SALIR=1
fi
done
Bueno hasta lo basico para que puedan ver como se trabaja con shell scripting una de las herramientas mas poderosas de linux , y perdonen el tema de la indentación nose porque no sale , Saludos
Aca mis otros posts
Bueno antes que nada unos conceptos basicos para el que no sepa :
¿Que es Shell?
Shell:
Intérprete de comandos.
Modo de interacción entre el usuario y el Kernel.
Es un poderoso ambiente de programación.
Permite la creación de scripts (shell scripts).
¿Y Shell script?
Shell script:
Agrupamiento de sentencias de shell con un fin en común.
Archivo de texto plano que puede ser visualizado con un editor.
La programación en shell surgió como respuesta a las tareas que los
administradores realizaban secuencialmente para conseguir hacer algo con
el sistema.
Lo que se hace es ejecutar secuencialmente órdenes en el intérprete de
comandos sin tener que escribirlos a mano.
Si escribimos en una terminal
echo $SHELL
nos dira que shell estamos ejecutando
Nuestro primer script : Hola Mundo
Usamos un editor y creamos el fichero miprimerscript.sh:
#!/bin/bash
echo “Hola mundo!!”
Con #! en la primera línea indicamos quién debería interpretar los
comandos (/bin/bash).
Posteriormente escribimos los comandos separados por saltos de línea.
Ejecucion del script
El script debe tener permisos de ejecución para el
usuario.Para otorgarlos le damos click secundario al archivo , vamos a la pestañas permisos y marcamos ejecucion o desde terminal con chmod 755 nombredelscript.
Modo 1:
./script
Modo 2: (modo debug , ver que hace en cada paso , generalmente para buscar errores)
bash –x script
Variables
Una variable tiene un nombre y un valor, y sirve para dotar de dinamismo a
nuestros scripts:
#!/bin/bash
FECHA=$(date)
echo "Hola mundo!!"
echo "Hoy es:"; echo $FECHA
FECHA es el nombre de la variable.
$FECHA es su valor.
Para asignar un valor, se utiliza “=”.
Variables Interactividad
Para poder hacer entrada de datos, podemos ejecutar el comando:
read VARIABLE. Con esto, lo que escriba el usuario será almacenado
en la variable VARIABLE. Ejemplo:
#!/bin/bash
echo -n "Introduzca algo:"
read VARIABLE
echo "Has tecleado: $VARIABLE"
Variables Argumentos
Se pueden enviar argumentos al momento de la invocación del script:
$1, $2, $3... ${10}, ${11}: argumentos (parámetros).
shift
: permite hacer un corrimiento de parámetros a izquierda. ($1ahora vale lo que valía $2, $2 lo que valía $3, etc. $0 no cambia).
$0: Nombre del script.
Es posible pasar los parámetros o argumentos que queramos y
utilizarlos dentro del script. Por ejemplo:
#!/bin/sh
#notese que aca se usa la shell sh pero puede usarse cualquier otra
echo “Primer Nombre: $1”
echo “Segundo Nombre: $2”
echo “Apellido: $3”
Lo ejecutamos: ./nombre.sh Juan Pablo Salinas
En donde $1 es juan , $2 es pablo y $3 salinas
Variables Argumentos especiales
$*: todos los argumentos. “$*” = “$1 $2 $3...” (se usa para iterar).
$@: todos los argumentos. “$@” = “$1” “$2” “$3”...
$_: comando anteriormente ejecutado.
$#: número de argumentos que nos han pasado.
Variables y comandos
Es posible almacenar en una variable el resultado de la ejecución
de un comando.
Con $(): anidable
LISTADO=$(ls)
LISTADO=$(ls $(cat directorios.txt))
Operadores
== (igual en strings)
a (and)
o (or)
!= (distintos en strings)
eq (es igual Números)
ne (es distinto Números)
lt (menor que)
g (mayor que)
le (menor o igual)
ge (mayor o igual)
e nombre (si existe directorio, archivo, etc.)
d dir (si dir es un directorio)
f file (si file es un archivo)
r file (si para file tengo permiso de lectura)
w file (si para file tengo permiso de escritura)
x file (si para file tengo permiso de ejecución)
Condicionales (if)
if:
if [ expresion ]
then
comandos
else
comandos
fi
Un ejemplo :
PREGUNTAR="SI"
if [ $PREGUNTAR == "SI" ]
then
echo "Me han pedido que te pregunte cual es tu nombre?"
else
echo "No me apetece saber como te llamas"
fi
Case
case $VARIABLE in
patron1 )
comandos1
;;
patron2 )
comandos2
;;
patron3 )
comandos3
;;
esac
Estructuras iterativas
For:
for variable in lista
do
comandos
done
While :
while [ condición ]
do
comando1
comando2
comando3
....
done
ejemplo de while :
SALIR=0
while [ ! $SALIR ]
do
if [ ]
then
SALIR=1
fi
done
Bueno hasta lo basico para que puedan ver como se trabaja con shell scripting una de las herramientas mas poderosas de linux , y perdonen el tema de la indentación nose porque no sale , Saludos
Aca mis otros posts