Scripts Linux 2020

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

SISTEMAS OPERATIVOS (SCRIPTS EN LINUX)

Scripts en UNIX/LINUX

Scripts
El script es un documento que contiene instrucciones, escritas en códigos de programación. El script
es un lenguaje de programación que ejecuta diversas funciones en el interior de un programa de
computador.

Los scripts se encargan de cumplir las siguientes funciones:


• Combinar componentes.
• Interactuar con el sistema operativo o con el usuario.
• Controlar un determinado programa o aplicación.
• Configurar o instalar sistemas operacionales, especialmente en los juegos, se usa para
controlar las acciones de los personajes.

Algunos lenguajes de programación, usada como script son: ActionScript, JavaScript, Lua, PHP,
Python, ShellScript, Ruby, VBScript.

ERNESTO SOLANO HERNÁNDEZ 1


SISTEMAS OPERATIVOS (SCRIPTS EN LINUX)

El Shell, además de utilizarse para ejecutar comandos, tiene una gran aplicación como lenguaje de
programación para escribir comandos o programas propios; para esto se colocan comandos en el
archivo creado (conocido como shell script) y después se ejecuta el archivo como un comando o
programa.

EL Bourne shell (sh) está disponible en todos los sistemas UNIX. Los scripts del Bourne shell también
pueden trabajar bajo el Bourne Again Shell (bash). Los shells C y TC usan un lenguaje de
programación similar al lenguaje C.

Los scripts se utilizan para automatizar o realizar tareas sin tener que repetirlas una y otra vez, ya
que en el propio fichero del script se introducen los comandos necesarios para realizar la tarea.

Para crear un shell script simple, se deben poner líneas de comando en un archivo; para escribirlo
se utiliza los comandos o instrucciones vi o nano o cualquier editor de texto y se crea el archivo, se
asignan los permisos de acceso apropiados, es decir otrogarle el permiso de ejecución y después
ejecutar el archivo (simplemente llamarlo como un comando).

Con el archivo creado y abierto, se le debe indicar a Linux que dicho archivo será un script. Por lo
tanto, todos los shell script, obligatoriamente deben tener una primera línea que es:
#! /bin/bash

La línea anterior se puede dividir en dos partes, la primera corresponde a #!, esta secuencia es
denominada SheBang. Básicamente, su función es indicar al sistema que a continuación se
presentará un conjunto de instrucciones y de este modo sean procesadas. La segunda parte,
/bin/bash, indica el shell que será utilizado para la ejecución de los comandos.

Es importante añadir comentarios a los Scripts, un comentario no añade funcionalidad al sistema,


pero son relevantes para explicar el funcionamiento de un programa, el script en este caso.

Los comentarios se pueden añadir usando el símbolo #. Normalmente el comentario se coloca


previo a la instrucción, con el fin de explicar cierta funcionalidad o explicar la función del Script, pero
pueden ser usados con menos o mayor frecuencia en el shell script.

ERNESTO SOLANO HERNÁNDEZ 2


SISTEMAS OPERATIVOS (SCRIPTS EN LINUX)

Este es el contenido de un shell script llamado ejemplo :

# Este script despliega la fecha, hora, nombre de


# usuario y directorio actual
echo -n "Fecha y hora:"
date
echo
echo "Tu terminal es: `w`"
echo -n "Tu directorio actual es: "
pwd

El símbolo # representa el inicio de comentarios y no son ejcutados por el shell, es importante


utilizarlos para referenciar lo que hace cada shell script y analizarlo en el futuro.
Las backquotes o tildes (`) entre el comando who am i ilustran el uso de la sustitución de comandos,
es decir que se incluye la salida de un comando dentro de otro comando.
El comando who am i muestra el usuario actual, echo permite desplegar un mensaje en pantalla,
date muestra la fecha y hora del sistema y pwd el directorio actual de trabajo.

Otro ejemplo secillo de la utilización de script en el shell

#Programa que solicita los datos personales


echo "Por favor digite su nombre: "
read nombre
echo "Bienvenido " $nombre
echo "Digite su apellido \n"
read apellido
echo "Bienvenido a la clase de Operativos $nombre $apellido

Para este caso se utiliza el comando read que realiza la lectura de la variable nombre. $nombre en
la línea de echo indica que se pasa como parámetro el contenido de la variable por lo que va a para
por pantalla el nombre guardado en la respectiva variable. \n solicita un retorno de carro y \c
solicita que siga en la misma línea.

Variables.

Como cualquier lenguaje de programación, es necesario utilizar variables que servirán para guardar
los datos en la memoria del dispositivo y se puedan utilizar dentro del desarrollo de los programas.

Para asignar el valor a una variable se debe utilizar el signo igual (=).

ERNESTO SOLANO HERNÁNDEZ 3


SISTEMAS OPERATIVOS (SCRIPTS EN LINUX)

nombre_variable=valor_variable ➔ Acumulador=200, es importante no dejar espacios ni antes ni


después del signo igual.

Para recuperar el valor de dicha variable sólo hay que anteponer el símbolo de dolar $ antes del
nombre de la variable:

$nombre_variable ➔ $Acumulador e inmediatamente el sistema Linux muestra en pantalla el


contenido de Acumulador que es 200

A lo largo de un script es posible asignarle diferentes valores a una misma variable:

Acumulador='Hola mundo'
echo $Acumulador ➔ 'Hola mundo'

Acumulador=5.5
echo $Acumulador ➔ 5.5

Nombre de las variables

Las variables pueden nombrarse de múltiples formas, sin embargo, existen algunas restricciones:
• Sólo puede contener caracteres alfanuméricos y guiones bajos
• El primer carácter debe ser una letra del alfabeto o “_” (este último caso se suele reservar
para casos especiales).
• No pueden contener espacios.
• Las mayúsculas y las minúsculas importan, “a” es distinto de “A”.
• Algunos nombres so usado como variables de entorno y no los debemos utilizar para evitar
sobrescribirlas (PATH, HOSTNAME).

Es importante, para evitar inconvenientes con las variables de entorno del sistema LINUX, que los
nombres deben ser escritos en minúscula; aunque no es una regla, se debe realizar por
conveniencia. Adicionalmente, es significativo crear las variables que se ajusten al contexto de la
solución del problema.

Instrucciones condicionales.

Cada comando Linux retorna un valor de salida el cual puede ser consultado. Este valor está
guardado en la variable de solo lectura $?. El valor 0 es bueno, cualquier otro es malo.

La instrucción if usa el status del último comando y condicionalmente ejecuta la siguiente


instrucción. La sintaxis general es :
if test
then

ERNESTO SOLANO HERNÁNDEZ 4


SISTEMAS OPERATIVOS (SCRIPTS EN LINUX)

comandos
else
comandos
fi
then, else, y fi son palabras reservadas y como tales únicamente serán reconocidas después de una
nueva línea o ; (punto y coma). Hay que asegurarse que cada if termina con su fi correspondiente.

El if se puede anidar :
if ...
then ...
else if ... (también se puede usar elif en lugar de else if)
...
fi
fi

Ejemplo de if :
if w | grep -s TTY >/dev/null
then
echo usuario está conectado
else
echo usuario no está conectado
fi

La ejecución de w se pasa a grep para buscar la terminal "TTY", la opción -s consigue que grep trabaje
silenciosamente y cualquier mensaje de error se direcciona al archivo /dev/null.

El operador && se usa para ejecutar un comando, y si es correcto, ejecuta el siguiente comando en
la lista. Por ejemplo,en comando1 && comando2, se ejecuta primero comando1 y si es correcto se
ejecuta comando2. Esto es equivalente a :
if comando1
then
comando2
fi
El operador || se usa para ejecutar un comando, y si falla, ejecuta el siguiente comando de la lista.
Por ejemplo, en comando1 || comando2, se ejecuta primero comando1 y si falla se ejecuta
comando2. Esto es equivalente a :
comando1
if test $? -en 0
then
comando2
fi

Instrucciones de control

ERNESTO SOLANO HERNÁNDEZ 5


SISTEMAS OPERATIVOS (SCRIPTS EN LINUX)

La instrucción case

El flujo del programa se controla basado en una variable categorizada. Esta variable se compara con
cada opción. Cuando encuentra la opción correcta, se ejecuta el comando u operaciones asociadas
y se termina la instrucción.
case variable in
opcion1) comandos
;;
opcion2|opcion3) comandos
;;
opcionN) comandos
;;
Esac

Un comando puede asociarse con más de una opción. Las opciones pueden separarse unos de otros
con el símbolo | . El orden de chequeo es el orden en que aparecen las opciones.

Para especificar un patrón por defecto se pueden usar comodines :


? comprueba un carácter
* comprueba cualquier número de cualquier tipo de caracteres
[nnn] comprueba cualquiera de los caracteres entre corchetes
[!nnn] comprueba cualquier carácter que no este entre los corchetes
[n-n] comprueba cualquier carácter en el rango

La instrucción for

El ciclo for sigue la siguiente sintaxis :

for variable in lista-de-variables


do
comandos
done

Comandos es una secuencia de uno o más instrucciones separadas por una línea o por un ; (punto y
coma).
Las palabras reservadas do y done deben estar precedidas por una línea o por un ; .
for variable in lista; do comandos; done

Las instrucciones while y until

ERNESTO SOLANO HERNÁNDEZ 6


SISTEMAS OPERATIVOS (SCRIPTS EN LINUX)

La instrucción while tiene la sintaxis genera:

while lista-de-instrucciones1
do
lista-de-instrucciones2
done

las intrucciones de lista-de-lista de instrucciones1 se ejecutan, y si el status del último comando de


la lista es 0, se ejecutan los comandos de lista-de-intrucciones2.
La sequencia se repite mientras el status de lista-de-intrucciones1 es 0.

La instrucción until tiene la siguiente sintaxis :

until lista-de-comandos1
do
lista-de-comandos2
done

Su función es idéntica a while excepto en que el bucle se ejecuta mientras en status de lista-de-
instrucciones1 no es 0.

Ejemplos :

#!/bin/sh
echo -n "Escribe el nombre de un archivo"
read FILE
until test -f $FILE
do
sleep 60
done
echo "$FILE ya existe"

Verifica cada 60 segundos si existe el archivo representado por la variable $FILE.

Las instrucciones break y continue.

La instrucción break termina la ejecución del bucle más interior causando la ejecución de la
instrucción done más cercana.
Para salir del nivel n, usa : break n, esto causa la ejecución de la instrucción done n.
El comando continue causa la ejecución de la instrucción while, until o for en la cual comienza el
bucle que contiene el comando continue.

Ejemplo :

ERNESTO SOLANO HERNÁNDEZ 7


SISTEMAS OPERATIVOS (SCRIPTS EN LINUX)

#!/bin/sh
while echo "Por favor introduce un comando"
read respuesta
do
case "$respuesta" in 'fin')
break # no más comandos
;;
"")
continue # comando nulo
;;
*)
eval $respuesta # ejecuta el comando
;;
esac
done

Mientras el usuario introduzca un comando o un string nulo el script continua funcionando. Para
pararlo el usuario debe teclear "fin".

Creación de un Script.

Para crear un ecript, se debe utilizar cualquier editor de texto de Linux (vi, nano, gedit), como
sugerencia utilizar el editor nano, que es más simple en su utilización.

▪ Crear un fichero o archivo de texto en la ruta donde se desea tener el script; esto es,
regularmente se ubica en el directorio personal; sin embargo se puede escoger una
ubicación distinta, simplemente hay que verificar los permisos.

▪ Guardar el archivo o fichero con el nombre escogido y se finaliza con la extensión “.sh”

▪ Para que se reconozca como un script, se debe escribir como primera línea:
#!/bin/bash.

▪ Luego se escriben las instrucciones que hacen parte del script

▪ Al terminar el script, se guardan los cambios y queda listo el script

Lanzar o ejecutar un Script.

ERNESTO SOLANO HERNÁNDEZ 8


SISTEMAS OPERATIVOS (SCRIPTS EN LINUX)

De manera predeterminada no se ejecutan los script en Linux. Es necesario establecer permisos de


ejecución al programa porque al crearse como archivo de texto se crea sin ese permiso.

Para ejecutar un script debe digitar la siguiente instrucción:


chmod +x nombre-del-script ó chmod 755 nombre-del-script

luego se utiliza el comando ls con la opción -l para verificar los permisos que posee el script. Use el
comando ls para ver los permisos que posee el script:

$ ls -l nombre-del-script

Para ejecutar el script, se puede utilizar cualquiera de esta formas, siempre y cuando estén
soportadas por la versión del sistema operativo:

1. Ejecutar el Script usando directamente el nombre del archivo:


Ubuntu:~$ cd /home/esolano
Ubuntu~esolano:~$ ./mi_script
ó
Ubuntu~esolano:~$ /home/ahornero/mi_script

2. Ejecutar el Script especificando el nombre del intérprete:


(usando el intérprete SH,)
Ubuntu~esolano:~$ sh ./mi_script
(usando el intérprete BASH)
Ubuntu~esolano:~$ bash ./mi_script

Ejecutar el script llamado backup.ksh usando la línea de comandos de ksh shell:


Ubuntu~esolano:~$ ksh ./backup.ksh

3. Ejecutar el Script usando . ./ (punto espacio punto barra):


Ubuntu~esolano:~$ . ./mi_script

4. Ejecutar el Script usando el comando source:


Ubuntu~esolano:~$ source ./mi_script

ERNESTO SOLANO HERNÁNDEZ 9

También podría gustarte