Shell Script Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • SHELL tiene dos formas distintas de ejecutar comandos : – Archivos binarios • Programas compilados y de los cuales existe un ejecutable • archivos .exe ó .com en MS-DOS
– Archivos de texto • Contienen un programa escrito en el lenguaje del shell • archivos .bat en MS-DOS Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Para ejecutarlos, el usuario solamente debe digitar su nombre y el shell se encarga de ver como debe ser ejecutado. • El shell tiene primitivas de control de ejecución como por ej.: – sentencias condicionales – bucles.
• La interpretación del lenguaje se lleva a cabo en tiempo real. • A medida que va interpretando, va ejecutando. Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Estos archivos deben tener permiso de ejecución para el usuario.
chmod -u +x archivo chmod 7.. archvivo • Lo tiene que encontrar en el camino de búsqueda.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • El nombre comienza con / • Nombre absoluto de un archivo – /home/user/prog
Nombre absoluto
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Es una palabra reservada – – – – – – – – –
if then elif fi while do done for !
– – – – – –
case in esac { } until
Sistemas Operativos III - ITS – EMT - CETP
Nombre absoluto Palabra Reservada
Prof. L. Carámbula
SHELL SCRIPT • Es un alias de otro comando • Ver alias, en presentación SHELL
Nombre absoluto Palabra Reservada
Alias Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Es un comando interno del núcleo – fg – read – test – umask – alias – history – return – trap – unalias – bg – jobs – unset – set – type – break – kill – cd Nombre absoluto – let – continue – logout Palabra Reservada – echo – pwd – exec – exit Comando interno Alias – export Sistemas Operativos III - ITS – EMT - CETP Prof. L. Carámbula
SHELL SCRIPT • Es una función definida por el usuario – más adelante se verá como se definen las mismas.
Nombre absoluto Palabra Reservada Función Comando interno Sistemas Operativos III - ITS – EMT - CETP
Alias Prof. L. Carámbula
SHELL SCRIPT • Busca en cada uno de los directorios contenidos en la variable PATH – ej: PATH = /bin:/usr/bin:/etc: – La variable PATH incluye actual Variable PATH
, directorio
Nombre absoluto Palabra Reservada
Función Comando interno Sistemas Operativos III - ITS – EMT - CETP
Alias Prof. L. Carámbula
SHELL SCRIPT • Si no encuentra la orden ingresada en el camino de búsqueda, emite el mensaje de error correspondiente.
Variable PATH
Nombre absoluto Palabra Reservada
Función Comando interno Sistemas Operativos III - ITS – EMT - CETP
Alias Prof. L. Carámbula
SHELL SCRIPT • Parámetros posicionales – son parámetros disponibles dentro del shell script como variables. – se ingresan a continuación del nombre. – se separan por espacios. – prog hola 5 pedro 7 juan 11 $0 $1 $2 $3 $4 $5 $6 Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT $0
el nombre del shell script que estamos ejecutando.
$1 $2 $9 ${10} $#
Primer parámetro posicional. Segundo parámetro posicional. Noveno parámetro posicional. Decimo parámetro posicional. Cantidad de parámetros que se han pasado al shell script.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT $* • Un argumento que contiene a todos los parámetros que se han ingresado conjuntamente con el shell script ($1, $2, …) menos $0. • En forma de lista, separados por espacios.
$@ $?
Lo mismo que
$*
Almacena el código de error del último comando ejecutado.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT $$ $!
Número de proceso actual (PID)
#
COMENTARIO : Todo lo que haya escrito a la derecha, se toma como comentario.
Almacena el código de error del último comando ejecutado en segundo plano
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •NOTA:
#!/bin/bash • Esta línea se debe ingresar como primera línea de un shell script, de esta manera se identifica como tal.
/bin/bash es la ruta donde se encuentra el interprete de comandos. Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Ejercicio: – Generar un archivo vi – Ingresar en vi: #!/bin/bash
prueba.sh
echo “El script se llama $0” echo “Cantidad de parametros es: $#” echo “El primero parametro es:
$1”
$*
echo “Y todos son: ” echo “Fin - Shell Script” Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Ejercicio: – Una vez ingresado las líneas anterirores presionar:
• ESC
•: • wq – Guardar y salir
–Colocar permiso de ejecución para el archivo creado:
chmod –u +x prueba.sh Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Ejercicio: –Ejecutar el script de la siguiente manera:
prueba.sh uno dos tres –Desplegará por pantalla: • El script se llama prueba.sh • La cantidad de parámetros es: 3 • El primero es: uno • Y todos son: uno dos tres • Fin - Shell Script Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Comando echo –Imprime por pantalla un literal en una línea • echo “Hola Linux”
-n • No genera una nueva línea
-e • Permite utilizar los caracteres de escape Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Comando echo –caracteres de escape
\n \r \t \v
nueva línea
\b \a
retroceso, backspace
retorno de carro, primera línea tabulador horizontal tabulador vertical
beep, campana
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Comando echo –caracteres de escape
\ Oxx
octal ascii de Oxx
– ABC = $’\101\102\103\010’ – echo $ABC
\“
Shell Script Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • SHELL tiene dos formas distintas de ejecutar comandos : – Archivos binarios • Programas compilados y de los cuales existe un ejecutable • archivos .exe ó .com en MS-DOS
– Archivos de texto • Contienen un programa escrito en el lenguaje del shell • archivos .bat en MS-DOS Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Para ejecutarlos, el usuario solamente debe digitar su nombre y el shell se encarga de ver como debe ser ejecutado. • El shell tiene primitivas de control de ejecución como por ej.: – sentencias condicionales – bucles.
• La interpretación del lenguaje se lleva a cabo en tiempo real. • A medida que va interpretando, va ejecutando. Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Estos archivos deben tener permiso de ejecución para el usuario.
chmod -u +x archivo chmod 7.. archvivo • Lo tiene que encontrar en el camino de búsqueda.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • El nombre comienza con / • Nombre absoluto de un archivo – /home/user/prog
Nombre absoluto
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Es una palabra reservada – – – – – – – – –
if then elif fi while do done for !
– – – – – –
case in esac { } until
Sistemas Operativos III - ITS – EMT - CETP
Nombre absoluto Palabra Reservada
Prof. L. Carámbula
SHELL SCRIPT • Es un alias de otro comando • Ver alias, en presentación SHELL
Nombre absoluto Palabra Reservada
Alias Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Es un comando interno del núcleo – fg – read – test – umask – alias – history – return – trap – unalias – bg – jobs – unset – set – type – break – kill – cd Nombre absoluto – let – continue – logout Palabra Reservada – echo – pwd – exec – exit Comando interno Alias – export Sistemas Operativos III - ITS – EMT - CETP Prof. L. Carámbula
SHELL SCRIPT • Es una función definida por el usuario – más adelante se verá como se definen las mismas.
Nombre absoluto Palabra Reservada Función Comando interno Sistemas Operativos III - ITS – EMT - CETP
Alias Prof. L. Carámbula
SHELL SCRIPT • Busca en cada uno de los directorios contenidos en la variable PATH – ej: PATH = /bin:/usr/bin:/etc: – La variable PATH incluye actual Variable PATH
, directorio
Nombre absoluto Palabra Reservada
Función Comando interno Sistemas Operativos III - ITS – EMT - CETP
Alias Prof. L. Carámbula
SHELL SCRIPT • Si no encuentra la orden ingresada en el camino de búsqueda, emite el mensaje de error correspondiente.
Variable PATH
Nombre absoluto Palabra Reservada
Función Comando interno Sistemas Operativos III - ITS – EMT - CETP
Alias Prof. L. Carámbula
SHELL SCRIPT • Parámetros posicionales – son parámetros disponibles dentro del shell script como variables. – se ingresan a continuación del nombre. – se separan por espacios. – prog hola 5 pedro 7 juan 11 $0 $1 $2 $3 $4 $5 $6 Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT $0
el nombre del shell script que estamos ejecutando.
$1 $2 $9 ${10} $#
Primer parámetro posicional. Segundo parámetro posicional. Noveno parámetro posicional. Decimo parámetro posicional. Cantidad de parámetros que se han pasado al shell script.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT $* • Un argumento que contiene a todos los parámetros que se han ingresado conjuntamente con el shell script ($1, $2, …) menos $0. • En forma de lista, separados por espacios.
$@ $?
Lo mismo que
$*
Almacena el código de error del último comando ejecutado.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT $$ $!
Número de proceso actual (PID)
#
COMENTARIO : Todo lo que haya escrito a la derecha, se toma como comentario.
Almacena el código de error del último comando ejecutado en segundo plano
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •NOTA:
#!/bin/bash • Esta línea se debe ingresar como primera línea de un shell script, de esta manera se identifica como tal.
/bin/bash es la ruta donde se encuentra el interprete de comandos. Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Ejercicio: – Generar un archivo vi – Ingresar en vi: #!/bin/bash
prueba.sh
echo “El script se llama $0” echo “Cantidad de parametros es: $#” echo “El primero parametro es:
$1”
$*
echo “Y todos son: ” echo “Fin - Shell Script” Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT • Ejercicio: – Una vez ingresado las líneas anterirores presionar:
• ESC
•: • wq – Guardar y salir
–Colocar permiso de ejecución para el archivo creado:
chmod –u +x prueba.sh Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Ejercicio: –Ejecutar el script de la siguiente manera:
prueba.sh uno dos tres –Desplegará por pantalla: • El script se llama prueba.sh • La cantidad de parámetros es: 3 • El primero es: uno • Y todos son: uno dos tres • Fin - Shell Script Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Comando echo –Imprime por pantalla un literal en una línea • echo “Hola Linux”
-n • No genera una nueva línea
-e • Permite utilizar los caracteres de escape Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Comando echo –caracteres de escape
\n \r \t \v
nueva línea
\b \a
retroceso, backspace
retorno de carro, primera línea tabulador horizontal tabulador vertical
beep, campana
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Comando echo –caracteres de escape
\ Oxx
octal ascii de Oxx
– ABC = $’\101\102\103\010’ – echo $ABC
\“ \$ \\
comillas dobles, “ símbolo de pesos, $ contrabarra, \
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Comando read – Lee caracteres del teclado hasta presionar – Los caracteres ingresados se almacenan en una variable.
read numero -n número • Cantidad de caracteres a leer Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Comando read – Shell-script : read.sh ; – ejecutar como read.sh echo “ INGRESE SU NOMBRE? ” read nom echo “Hola $nom”
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Aritmética en SHELL Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Aritmética en SHELL –Tipo entero para una variable –se fija con el comando: typeset –i variable • o por base# para el valor.
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Aritmética en SHELL •Ejemplo –La variable X es fijada a 5 en base 2 usando ambos formatos:
typeset -i X=5 typeset -i X=2#101 echo $X
»
5
Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Aritmética en SHELL •Ejemplos – Se desea desplegar el valor de X en otra base, puede ser definida otra base con el comando typeset -in.
• Ejemplo, redefinir X, X en base 3:
typeset -i X echo $X » 3#12 Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Aritmética en SHELL •El comando LET let “ < expresión-aritmética> ” ( ( < expresión-aritmética > ) ) –Donde las expresión aritmética puede contener: –constantes –operaciones –variables Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Aritmética en SHELL •El comando LET –Asignar la suma de 1+1 a la variable X:
let “X=1+1" echo $X » 2 –Luego puede ser incrementado:
let “X=X+1" echo $X » 3 Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Aritmética en SHELL •El comando (( ... )) –Asignar la suma de 1+1 a la variable X:
(( X = 1 + 1 )) echo $X » 2 –Luego puede ser incrementado:
(( X = X + 1 )) echo $X » 3 Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Aritmética en SHELL •Operadores Aritméticos * Multiplicación / División % Módulo, resto de la división + Suma Resta Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
Aritmética en SHELL •Operadores Aritméticos
X= 4 (( X = X % 2 )) echo $X » 0 Sistemas Operativos III - ITS – EMT - CETP
SHELL SCRIPT •Condicional interactivo case $opcion in 1) who;; 2) df;; 3) ps;; 5) echo “Saliendo...”;; *) echo “Opción $opcion es incorrecta”;;
esac Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Repetitivas while do ... comandos done – Ejecuta los comandos del bloque hasta que la condicion sea falsa. Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Repetitivas NUM=2
while (( NUM < 64 )) do echo -e “\t$NUM” ((NUM *= 2)) done Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Repetitivas until do ... comandos ... done • Se ejecuta al menos una vez los comandos del bloque Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Recorrer una lista for variable in do ... comandos ... done • Se ejecuta los comandos del bloque para cada valor de • variable adopta el valor del item de la lista Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Repetitivas for NOM in Ana Maria Jose Leo do echo -n $NOM done » AnaMariaJoseLeo Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Repetitivas # $@ contiene la lista de parametros
for X in $@ do echo $X done Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Repetitivas –Procesar todas las líneas de un archivo
for linea in $(cat /etc/passwd) do ... done – En la variable linea se almacena la línea del archivo, para cada interacción Sistemas Operativos III - ITS – EMT - CETP
Prof. L. Carámbula
SHELL SCRIPT •Comando test test “” [ [ ] ] – Condiciones con cadenas de caracteres – Condiciones con archivos Sistemas Operativos III - ITS – EMT - CETP