SlideShare una empresa de Scribd logo
Introducción a
Shell Script
Prof. Pablo Macón
http://pablomacon.wix.com/home/
profemacon@gmail.com
Introducción a Shell Scripting
La idea es combinar secuencias de comandos de Linux
para realizar determinadas tareas.
Con shell scripts podremos definir variables y asignarles
valores o permitir que un usuario inserte valores de
forma interactiva.
Introducción a Shell Scripting
En este lenguaje de programación disponemos de bucles
y estructuras de control para realizar operaciones
aritméticas o de comparación.
También podremos tener varios shell scripts
ejecutándose al mismo tiempo.
Variables
Son porciones de memoria
Asociadas a un nombre simbólico
Pueden tener un valor o contener información
Este valor puede ser cambiado en cualquier momento
Variables
En Linux, por defecto, todas las variables son cadenas
de caracteres, no hay tipos como int, char, long...
Si las queremos usar en una operación aritmética vamos
a tener que indicarle al sistema lo que queremos hacer
con un comando especial
Variables
Declarar una variable:
nombre_Variable=valor
(sin espacios a ambos lados del signo igual)
var1=hola
var2=mundo
Variables
Declarar una variable:
También podemos asignar una cadena con varias
palabras, pero para eso tenemos que ponerlas entre
comillas dobles
var3=”hola mundo”
Variables
Declarar una variable:
Podemos poner también las secuencias de escape
var4=”holanmundo”
Variables
Por último podemos poner el resultado de un comando
en una variable, con las comillas invertidas:
var6=`ls /bin`
El sistema ejecuta el comando que está entre comillas y
el resultado se pone íntegro dentro de la variable, sin
mostrarlo en la pantallas
Comando echo
El valor que está guardado en las variables puede ser
utilizado en cualquier momento, ya sea dentro de un
script como fuera de él
Hay que resaltar y recordar que cualquier comando que
podamos utilizar dentro de un script va a poder ser
utilizado fuera, en la línea de comandos que usamos
Comando echo
Uno de los muchos usos que vamos a hacer de las
variables va a ser mostrarlas en pantalla.
Ya sea para dar un saludo al usuario que está utilizando
el sistema, como para verificar si los datos ingresados
son correctos.
Comando echo
El comando que nos va a permitir ver el contenido de las
variables en la pantalla es el comando echo.
Este comando desplegará en la salida estándar cualquier
elemento o cadena de caracteres que le indiquemos
como parámetro
Comando echo
La sintaxis de este comando es:
echo [-opciones] [cadena con o sin formato]
echo “Mi nombre es Fulano de tal y nací el 30
de febrero de 1995”
mostrará en la salida estándar (pantalla) la cadena que
está entre comillas
Comando echo
Para mostrar el contenido (valor) de cualquier variable
(cualquiera haya sido el método mediante el cual la
definimos), es necesario que el nombre de la variable
esté precedida por el signo $ (pesos)
echo $miVariable
mostrará el valor de miVariable en la salida estándar
Comando echo
echo permite también formatear la salida, utilizando la
opción -e, podemos mostrar cadenas con columnas, o
dejar líneas en blanco, etc.
No olvidar nunca poner la opción -e, de lo contrario, el
efecto deseado no se va a mostrar
Comando echo
Comando echo
Probemos:
echo -e “hola amundo”
echo -e “hola bmundo”
echo -e “hola cmundo”
echo -e “hola nmundo”
echo -e “hola tmundo”
Comando echo
echo permite también formatear la salida, utilizando la
opción -e, podemos mostrar cadenas con columnas, o
dejar líneas en blanco, etc.
No olvidar nunca poner la opción -e, de lo contrario, el
efecto deseado no se va a mostrar
Comando read
De cualquier modo, aún no hemos interactuado con el
usuario. Una manera para lograr que el usuario pueda
participar con nuestro programa la vamos poder hacer
con el comando read.
Este comando permite que el valor de una variable sea
tomado desde la consola, siendo ingresado por el
usuario a través de la entrada estándar (teclado)
La sintaxis es:
read [-opciones] [Cadena] variable
read miVariable
Esperará a que el usuario ingrese un valor, una vez que
se ingrese <intro> ⤶, aquello que haya sido ingresado se
guardará en la variable de nombre miVariable
Comando read
Este comando requiere que el usuario sepa exactamente
que es lo que se espera de él.
No podemos pensar que el usuario adivinará que ante
una pantalla negra, tenga que ingresar un valor de un
tipo determinado.
Comando read
Es por ello que normalmente vamos a mostrarle algún
tipo de mensaje en la pantalla previo al uso del comando
read, indicándole al usuario qué es lo que tiene que
ingresar.
El par echo/read va a ser uno de los más utilizados en
cualquier shell script que hagamos.
Comando read
Ejemplo: Deseamos que el usuario ingrese su nombre,
apellido y edad para guardarlos en tres variables.
echo -e “Ingrese su apellido: c”; read ape
echo -e “Ingrese su nombre: c”; read nom
echo “Ingrese su edad: ”; read edad
Comando read
Ejemplo: Deseamos que el usuario ingrese su nombre,
apellido y edad para guardarlos en tres variables.
¿qué diferencia se puede notar entre el uso de echo con
la opción -e c y la que no usan la secuencia de escape?
Comando read
Ejemplo: Deseamos que el usuario ingrese su nombre,
apellido y edad para guardarlos en tres variables.
Luego, en otra parte del programa vamos a querer
mostrar los valores ingresados:
echo “Ud. es $nom $ape y su edad es $edad”
Comando read
Nota aparte: Los nombres que le pongamos a las
variables tienen que tener algún tipo de relación con el
valor o el uso que queramos darle.
No podemos tener un script lleno de variables que se
llamen var1, var2, … var26 cuando la primera guarda una
cédula, la segunda una dirección y la tercera el nombre
de un libro
Comando read
En esta clase vamos a utilizar el editor nano, en las
siguientes vamos a utilizar el editor vi.
En la consola, escribamos nano primerScript.sh, es
decir, el nombre del comando seguido del nombre de
nuestro programa.
Nuestro primer script
Por convención, todos los scripts suelen terminar con la
secuencia .sh aunque debemos recordar que en Linux la
extensión de un archivo no tiene un valor más allá de
permitir reconocer su tipo.
Nuestro primer script
La primera línea de todos nuestros scripts será la
siguiente:
#! /bin/bash
Esta línea le permitirá al shell reconocer que nuestros
scripts deben correrse utilizando la shell bash. Si bien
puede usarse alguna otra shell, solo con bash vamos a
estar 100% seguros de que funcionará como queremos.
Nuestro primer script
A partir de esa línea, las siguientes líneas serán las que
escribimos hoy más temprano:
echo -e “Ingrese su apellido: c”; read ape
echo -e “Ingrese su nombre: c”; read nom
echo -e “Ingrese su edad: c”; read edad
echo “Ud. es $nom $ape y su edad es $edad”
Nuestro primer script
Una vez que finalizamos de editar nuestro script,
debemos guardar los cambios con la combinación de
teclas <ctrl>+<o>, le ponemos el nombre deseado (el
que ya tenía).
Para salir del editor usamos la combinación <ctrl>+<x>
Nuestro primer script
Para ejecutar nuestros scripts vamos a utilizar el
comando ./
./primerScript.sh
Permiso denegado ¿por qué obtenemos esta respuesta?
Nuestro primer script
Porque los programas deben tener permiso de ejecución.
De otro modo, son archivos comunes que no tienen
permiso para ejecutarse.
Para darle permiso debemos utilizar el comando chmod.
Para simplificar usaremos
chmod 777 primerScript.sh
Nuestro primer script
Ahora sí, podemos ejecutar el script que escribimos con
el comando
./primerScript.sh
Nuestro primer script

Más contenido relacionado

PDF
The linux shell. Shell Scripting desde 0
PDF
Administration serveur linux
PPTX
Add an interactive command line to your C++ application
PPTX
Présentation de git
PDF
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
PPT
linux-commands.ppt
PDF
Docker Meetup at Docker HQ: Docker Cloud
PPT
BITS: Introduction to linux, distributions and installation
The linux shell. Shell Scripting desde 0
Administration serveur linux
Add an interactive command line to your C++ application
Présentation de git
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
linux-commands.ppt
Docker Meetup at Docker HQ: Docker Cloud
BITS: Introduction to linux, distributions and installation

La actualidad más candente (20)

PPTX
Scripts
PPTX
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
PPTX
PPTX
Introduction to Ansible
PDF
Jenkins CI
PDF
Docker and Go: why did we decide to write Docker in Go?
ODP
ansible why ?
PDF
Jenkins to Gitlab - Intelligent Build-Pipelines
PDF
Gestion des utilisateurs et groupes / Users & groups management
PDF
Shell scripting
PDF
Linux basic commands with examples
PDF
Monitoring kubernetes with prometheus
PPTX
Jenkins CI
PPTX
El servicio http
PDF
Linux introduction
PDF
Shell scripting
PDF
C# languge(ar)C#.netالابحار في لغة
PDF
Kubernetes for Beginners
PDF
Apache Server Tutorial
ODP
Kubernetes Architecture
Scripts
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Introduction to Ansible
Jenkins CI
Docker and Go: why did we decide to write Docker in Go?
ansible why ?
Jenkins to Gitlab - Intelligent Build-Pipelines
Gestion des utilisateurs et groupes / Users & groups management
Shell scripting
Linux basic commands with examples
Monitoring kubernetes with prometheus
Jenkins CI
El servicio http
Linux introduction
Shell scripting
C# languge(ar)C#.netالابحار في لغة
Kubernetes for Beginners
Apache Server Tutorial
Kubernetes Architecture
Publicidad

Similar a Introducción a shell script (20)

ODP
Script presentacion
PPTX
Variables y comillas en Linux
PPTX
Introducción a Python
PDF
Quasi - mIRC-scripting-Alias
PDF
Shell script
PDF
Comandos linux
PPTX
Administración básica de ubuntu server parte 3
PPT
PDF
Quasi - Comandos básicos para UNIX
PDF
Programación c
PDF
11 PHP. PHP y HTML
PPTX
Primeros Programas Shell Script
PPTX
Sintaxis de lenguaje de programacion
PPTX
Shell scripting - Primera Clase
PDF
Manualdephpconejercicios 150226132934-conversion-gate01
PDF
Manual de php con ejercicios
PPTX
TALLER DE PROGRAMACIONNNNNNNNNNNNNNNNNNN
PDF
PROGRAMACIÓN DE CÓDIGOS CON PHP
DOCX
El lenguaje php
Script presentacion
Variables y comillas en Linux
Introducción a Python
Quasi - mIRC-scripting-Alias
Shell script
Comandos linux
Administración básica de ubuntu server parte 3
Quasi - Comandos básicos para UNIX
Programación c
11 PHP. PHP y HTML
Primeros Programas Shell Script
Sintaxis de lenguaje de programacion
Shell scripting - Primera Clase
Manualdephpconejercicios 150226132934-conversion-gate01
Manual de php con ejercicios
TALLER DE PROGRAMACIONNNNNNNNNNNNNNNNNNN
PROGRAMACIÓN DE CÓDIGOS CON PHP
El lenguaje php
Publicidad

Más de Pablo Macon (20)

PDF
Ejercicios3 - msdos - comandos para archivos
DOCX
Ejercicios directorios ii msdos
PPTX
Comandos para archivos msdos
DOCX
Ejercicios ms dos - i directorios
PPTX
Directorios y caminos
PDF
Prueba try
PPTX
Comandos basicos ii directorios
PPTX
Comandos Básicos DOS - comandos del Sistema
PDF
Instalación de MS-DOS con VM Ware
DOCX
ODT
Overclock
PPTX
Como Trabaja un Procesador
PDF
Práctico motherboard
PPTX
Placa madre
PPTX
Sistemas de archivo - FAT - NTFS
PPTX
Metodologías ágiles
PPTX
Introducción al proyecto
PPTX
Gabinete PC
PPTX
Nucleo kernel
PPTX
Herencia - Java
Ejercicios3 - msdos - comandos para archivos
Ejercicios directorios ii msdos
Comandos para archivos msdos
Ejercicios ms dos - i directorios
Directorios y caminos
Prueba try
Comandos basicos ii directorios
Comandos Básicos DOS - comandos del Sistema
Instalación de MS-DOS con VM Ware
Overclock
Como Trabaja un Procesador
Práctico motherboard
Placa madre
Sistemas de archivo - FAT - NTFS
Metodologías ágiles
Introducción al proyecto
Gabinete PC
Nucleo kernel
Herencia - Java

Último (20)

PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
biología es un libro sobre casi todo el tema de biología
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
ciencias-1.pdf libro cuarto basico niños
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
PDF
Metodologías Activas con herramientas IAG
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
DOCX
Tarea De El Colegio Coding For Kids 1 y 2
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
biología es un libro sobre casi todo el tema de biología
Escuelas Desarmando una mirada subjetiva a la educación
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
ciencias-1.pdf libro cuarto basico niños
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Salcedo, J. et al. - Recomendaciones para la utilización del lenguaje inclusi...
Metodologías Activas con herramientas IAG
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Tarea De El Colegio Coding For Kids 1 y 2
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
Híper Mega Repaso Histológico Bloque 3.pdf

Introducción a shell script

  • 1. Introducción a Shell Script Prof. Pablo Macón http://pablomacon.wix.com/home/ profemacon@gmail.com
  • 2. Introducción a Shell Scripting La idea es combinar secuencias de comandos de Linux para realizar determinadas tareas. Con shell scripts podremos definir variables y asignarles valores o permitir que un usuario inserte valores de forma interactiva.
  • 3. Introducción a Shell Scripting En este lenguaje de programación disponemos de bucles y estructuras de control para realizar operaciones aritméticas o de comparación. También podremos tener varios shell scripts ejecutándose al mismo tiempo.
  • 4. Variables Son porciones de memoria Asociadas a un nombre simbólico Pueden tener un valor o contener información Este valor puede ser cambiado en cualquier momento
  • 5. Variables En Linux, por defecto, todas las variables son cadenas de caracteres, no hay tipos como int, char, long... Si las queremos usar en una operación aritmética vamos a tener que indicarle al sistema lo que queremos hacer con un comando especial
  • 6. Variables Declarar una variable: nombre_Variable=valor (sin espacios a ambos lados del signo igual) var1=hola var2=mundo
  • 7. Variables Declarar una variable: También podemos asignar una cadena con varias palabras, pero para eso tenemos que ponerlas entre comillas dobles var3=”hola mundo”
  • 8. Variables Declarar una variable: Podemos poner también las secuencias de escape var4=”holanmundo”
  • 9. Variables Por último podemos poner el resultado de un comando en una variable, con las comillas invertidas: var6=`ls /bin` El sistema ejecuta el comando que está entre comillas y el resultado se pone íntegro dentro de la variable, sin mostrarlo en la pantallas
  • 10. Comando echo El valor que está guardado en las variables puede ser utilizado en cualquier momento, ya sea dentro de un script como fuera de él Hay que resaltar y recordar que cualquier comando que podamos utilizar dentro de un script va a poder ser utilizado fuera, en la línea de comandos que usamos
  • 11. Comando echo Uno de los muchos usos que vamos a hacer de las variables va a ser mostrarlas en pantalla. Ya sea para dar un saludo al usuario que está utilizando el sistema, como para verificar si los datos ingresados son correctos.
  • 12. Comando echo El comando que nos va a permitir ver el contenido de las variables en la pantalla es el comando echo. Este comando desplegará en la salida estándar cualquier elemento o cadena de caracteres que le indiquemos como parámetro
  • 13. Comando echo La sintaxis de este comando es: echo [-opciones] [cadena con o sin formato] echo “Mi nombre es Fulano de tal y nací el 30 de febrero de 1995” mostrará en la salida estándar (pantalla) la cadena que está entre comillas
  • 14. Comando echo Para mostrar el contenido (valor) de cualquier variable (cualquiera haya sido el método mediante el cual la definimos), es necesario que el nombre de la variable esté precedida por el signo $ (pesos) echo $miVariable mostrará el valor de miVariable en la salida estándar
  • 15. Comando echo echo permite también formatear la salida, utilizando la opción -e, podemos mostrar cadenas con columnas, o dejar líneas en blanco, etc. No olvidar nunca poner la opción -e, de lo contrario, el efecto deseado no se va a mostrar
  • 17. Comando echo Probemos: echo -e “hola amundo” echo -e “hola bmundo” echo -e “hola cmundo” echo -e “hola nmundo” echo -e “hola tmundo”
  • 18. Comando echo echo permite también formatear la salida, utilizando la opción -e, podemos mostrar cadenas con columnas, o dejar líneas en blanco, etc. No olvidar nunca poner la opción -e, de lo contrario, el efecto deseado no se va a mostrar
  • 19. Comando read De cualquier modo, aún no hemos interactuado con el usuario. Una manera para lograr que el usuario pueda participar con nuestro programa la vamos poder hacer con el comando read. Este comando permite que el valor de una variable sea tomado desde la consola, siendo ingresado por el usuario a través de la entrada estándar (teclado)
  • 20. La sintaxis es: read [-opciones] [Cadena] variable read miVariable Esperará a que el usuario ingrese un valor, una vez que se ingrese <intro> ⤶, aquello que haya sido ingresado se guardará en la variable de nombre miVariable Comando read
  • 21. Este comando requiere que el usuario sepa exactamente que es lo que se espera de él. No podemos pensar que el usuario adivinará que ante una pantalla negra, tenga que ingresar un valor de un tipo determinado. Comando read
  • 22. Es por ello que normalmente vamos a mostrarle algún tipo de mensaje en la pantalla previo al uso del comando read, indicándole al usuario qué es lo que tiene que ingresar. El par echo/read va a ser uno de los más utilizados en cualquier shell script que hagamos. Comando read
  • 23. Ejemplo: Deseamos que el usuario ingrese su nombre, apellido y edad para guardarlos en tres variables. echo -e “Ingrese su apellido: c”; read ape echo -e “Ingrese su nombre: c”; read nom echo “Ingrese su edad: ”; read edad Comando read
  • 24. Ejemplo: Deseamos que el usuario ingrese su nombre, apellido y edad para guardarlos en tres variables. ¿qué diferencia se puede notar entre el uso de echo con la opción -e c y la que no usan la secuencia de escape? Comando read
  • 25. Ejemplo: Deseamos que el usuario ingrese su nombre, apellido y edad para guardarlos en tres variables. Luego, en otra parte del programa vamos a querer mostrar los valores ingresados: echo “Ud. es $nom $ape y su edad es $edad” Comando read
  • 26. Nota aparte: Los nombres que le pongamos a las variables tienen que tener algún tipo de relación con el valor o el uso que queramos darle. No podemos tener un script lleno de variables que se llamen var1, var2, … var26 cuando la primera guarda una cédula, la segunda una dirección y la tercera el nombre de un libro Comando read
  • 27. En esta clase vamos a utilizar el editor nano, en las siguientes vamos a utilizar el editor vi. En la consola, escribamos nano primerScript.sh, es decir, el nombre del comando seguido del nombre de nuestro programa. Nuestro primer script
  • 28. Por convención, todos los scripts suelen terminar con la secuencia .sh aunque debemos recordar que en Linux la extensión de un archivo no tiene un valor más allá de permitir reconocer su tipo. Nuestro primer script
  • 29. La primera línea de todos nuestros scripts será la siguiente: #! /bin/bash Esta línea le permitirá al shell reconocer que nuestros scripts deben correrse utilizando la shell bash. Si bien puede usarse alguna otra shell, solo con bash vamos a estar 100% seguros de que funcionará como queremos. Nuestro primer script
  • 30. A partir de esa línea, las siguientes líneas serán las que escribimos hoy más temprano: echo -e “Ingrese su apellido: c”; read ape echo -e “Ingrese su nombre: c”; read nom echo -e “Ingrese su edad: c”; read edad echo “Ud. es $nom $ape y su edad es $edad” Nuestro primer script
  • 31. Una vez que finalizamos de editar nuestro script, debemos guardar los cambios con la combinación de teclas <ctrl>+<o>, le ponemos el nombre deseado (el que ya tenía). Para salir del editor usamos la combinación <ctrl>+<x> Nuestro primer script
  • 32. Para ejecutar nuestros scripts vamos a utilizar el comando ./ ./primerScript.sh Permiso denegado ¿por qué obtenemos esta respuesta? Nuestro primer script
  • 33. Porque los programas deben tener permiso de ejecución. De otro modo, son archivos comunes que no tienen permiso para ejecutarse. Para darle permiso debemos utilizar el comando chmod. Para simplificar usaremos chmod 777 primerScript.sh Nuestro primer script
  • 34. Ahora sí, podemos ejecutar el script que escribimos con el comando ./primerScript.sh Nuestro primer script