SlideShare una empresa de Scribd logo
1 de 34
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

La actualidad más candente

Course 102: Lecture 28: Virtual FileSystems
Course 102: Lecture 28: Virtual FileSystems Course 102: Lecture 28: Virtual FileSystems
Course 102: Lecture 28: Virtual FileSystems Ahmed El-Arabawy
 
Introduction to Cascading Style Sheets (CSS)
Introduction to Cascading Style Sheets (CSS)Introduction to Cascading Style Sheets (CSS)
Introduction to Cascading Style Sheets (CSS)Chris Poteet
 
Forms in html5
Forms in html5Forms in html5
Forms in html5hrisi87
 
Shell & Shell Script
Shell & Shell Script Shell & Shell Script
Shell & Shell Script Amit Ghosh
 
Setting up your development environment
Setting up your development environmentSetting up your development environment
Setting up your development environmentNicole Ryan
 
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...Artefactual Systems - AtoM
 
Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3Paradigma Digital
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scriptingvceder
 
使ってみよう PowerShell
使ってみよう PowerShell使ってみよう PowerShell
使ってみよう PowerShellKazuki Takai
 
Lenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlLenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlKarina Arguedas Ruelas
 
Course 102: Lecture 10: Learning About the Shell
Course 102: Lecture 10: Learning About the Shell Course 102: Lecture 10: Learning About the Shell
Course 102: Lecture 10: Learning About the Shell Ahmed El-Arabawy
 
PresentacióN Html
PresentacióN HtmlPresentacióN Html
PresentacióN Htmlmarcos0209
 
SASS - Syntactically Awesome Stylesheet
SASS - Syntactically Awesome StylesheetSASS - Syntactically Awesome Stylesheet
SASS - Syntactically Awesome StylesheetNeha Sharma
 
(Fast) Introduction to HTML & CSS
(Fast) Introduction to HTML & CSS (Fast) Introduction to HTML & CSS
(Fast) Introduction to HTML & CSS Dave Kelly
 
Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1Oscar Correa
 

La actualidad más candente (20)

Course 102: Lecture 28: Virtual FileSystems
Course 102: Lecture 28: Virtual FileSystems Course 102: Lecture 28: Virtual FileSystems
Course 102: Lecture 28: Virtual FileSystems
 
Shell script en linux
Shell script en linuxShell script en linux
Shell script en linux
 
Introduction to Cascading Style Sheets (CSS)
Introduction to Cascading Style Sheets (CSS)Introduction to Cascading Style Sheets (CSS)
Introduction to Cascading Style Sheets (CSS)
 
Forms in html5
Forms in html5Forms in html5
Forms in html5
 
Shell & Shell Script
Shell & Shell Script Shell & Shell Script
Shell & Shell Script
 
Setting up your development environment
Setting up your development environmentSetting up your development environment
Setting up your development environment
 
Guía instalación koha por paquetes en ubuntu 16.04 lts actualizada
Guía instalación koha por paquetes en ubuntu 16.04 lts actualizadaGuía instalación koha por paquetes en ubuntu 16.04 lts actualizada
Guía instalación koha por paquetes en ubuntu 16.04 lts actualizada
 
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
AtoM and Vagrant: Installing and Configuring the AtoM Vagrant Box for Local T...
 
Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3Introducción a HTML5 y CSS3
Introducción a HTML5 y CSS3
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scripting
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
使ってみよう PowerShell
使ってみよう PowerShell使ってみよう PowerShell
使ってみよう PowerShell
 
Lenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlLenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de Control
 
Sass presentation
Sass presentationSass presentation
Sass presentation
 
Course 102: Lecture 10: Learning About the Shell
Course 102: Lecture 10: Learning About the Shell Course 102: Lecture 10: Learning About the Shell
Course 102: Lecture 10: Learning About the Shell
 
PresentacióN Html
PresentacióN HtmlPresentacióN Html
PresentacióN Html
 
SASS - Syntactically Awesome Stylesheet
SASS - Syntactically Awesome StylesheetSASS - Syntactically Awesome Stylesheet
SASS - Syntactically Awesome Stylesheet
 
(Fast) Introduction to HTML & CSS
(Fast) Introduction to HTML & CSS (Fast) Introduction to HTML & CSS
(Fast) Introduction to HTML & CSS
 
Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1
 
Lenguaje HTML
Lenguaje HTMLLenguaje HTML
Lenguaje HTML
 

Similar a Introducción a shell script

Script presentacion
Script presentacionScript presentacion
Script presentacionVanne Napa
 
Variables y comillas en Linux
Variables y comillas en LinuxVariables y comillas en Linux
Variables y comillas en LinuxPablo Macon
 
Quasi - mIRC-scripting-Alias
Quasi - mIRC-scripting-AliasQuasi - mIRC-scripting-Alias
Quasi - mIRC-scripting-Aliasdegarden
 
Shell script
Shell scriptShell script
Shell scriptuniminuto
 
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 3Santiago Márquez Solís
 
Quasi - Comandos básicos para UNIX
Quasi - Comandos básicos para UNIXQuasi - Comandos básicos para UNIX
Quasi - Comandos básicos para UNIXdegarden
 
Programación c
Programación cProgramación c
Programación cvictdiazm
 
Primeros Programas Shell Script
Primeros Programas Shell ScriptPrimeros Programas Shell Script
Primeros Programas Shell ScriptPablo Macon
 
Sintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionSintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionluismart05
 
Shell scripting - Primera Clase
Shell scripting - Primera ClaseShell scripting - Primera Clase
Shell scripting - Primera ClasePablo Macon
 
Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicioswilliam kozisck
 
Manualdephpconejercicios 150226132934-conversion-gate01
Manualdephpconejercicios 150226132934-conversion-gate01Manualdephpconejercicios 150226132934-conversion-gate01
Manualdephpconejercicios 150226132934-conversion-gate01Fran Alfonsin
 
El shell-bash
El shell-bashEl shell-bash
El shell-bashlluera
 

Similar a Introducción a shell script (20)

Script presentacion
Script presentacionScript presentacion
Script presentacion
 
Variables y comillas en Linux
Variables y comillas en LinuxVariables y comillas en Linux
Variables y comillas en Linux
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Quasi - mIRC-scripting-Alias
Quasi - mIRC-scripting-AliasQuasi - mIRC-scripting-Alias
Quasi - mIRC-scripting-Alias
 
Shell script
Shell scriptShell script
Shell script
 
Comandos linux
Comandos linuxComandos linux
Comandos 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
 
4072954.ppt
4072954.ppt4072954.ppt
4072954.ppt
 
Quasi - Comandos básicos para UNIX
Quasi - Comandos básicos para UNIXQuasi - Comandos básicos para UNIX
Quasi - Comandos básicos para UNIX
 
Programación c
Programación cProgramación c
Programación c
 
Programación c
Programación cProgramación c
Programación c
 
11 PHP. PHP y HTML
11 PHP. PHP y HTML11 PHP. PHP y HTML
11 PHP. PHP y HTML
 
Primeros Programas Shell Script
Primeros Programas Shell ScriptPrimeros Programas Shell Script
Primeros Programas Shell Script
 
Sintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacionSintaxis de lenguaje de programacion
Sintaxis de lenguaje de programacion
 
Shell scripting - Primera Clase
Shell scripting - Primera ClaseShell scripting - Primera Clase
Shell scripting - Primera Clase
 
Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicios
 
Manualdephpconejercicios 150226132934-conversion-gate01
Manualdephpconejercicios 150226132934-conversion-gate01Manualdephpconejercicios 150226132934-conversion-gate01
Manualdephpconejercicios 150226132934-conversion-gate01
 
PROGRAMACIÓN DE CÓDIGOS CON PHP
PROGRAMACIÓN DE CÓDIGOS CON PHPPROGRAMACIÓN DE CÓDIGOS CON PHP
PROGRAMACIÓN DE CÓDIGOS CON PHP
 
El lenguaje php
El lenguaje phpEl lenguaje php
El lenguaje php
 
El shell-bash
El shell-bashEl shell-bash
El shell-bash
 

Más de Pablo Macon

Ejercicios3 - msdos - comandos para archivos
Ejercicios3 - msdos - comandos para archivosEjercicios3 - msdos - comandos para archivos
Ejercicios3 - msdos - comandos para archivosPablo Macon
 
Ejercicios directorios ii msdos
Ejercicios directorios ii msdosEjercicios directorios ii msdos
Ejercicios directorios ii msdosPablo Macon
 
Comandos para archivos msdos
Comandos para archivos msdosComandos para archivos msdos
Comandos para archivos msdosPablo Macon
 
Ejercicios ms dos - i directorios
Ejercicios ms dos - i directoriosEjercicios ms dos - i directorios
Ejercicios ms dos - i directoriosPablo Macon
 
Directorios y caminos
Directorios y caminosDirectorios y caminos
Directorios y caminosPablo Macon
 
Comandos basicos ii directorios
Comandos basicos ii   directoriosComandos basicos ii   directorios
Comandos basicos ii directoriosPablo Macon
 
Comandos Básicos DOS - comandos del Sistema
Comandos Básicos DOS - comandos del SistemaComandos Básicos DOS - comandos del Sistema
Comandos Básicos DOS - comandos del SistemaPablo Macon
 
Instalación de MS-DOS con VM Ware
Instalación de MS-DOS con VM WareInstalación de MS-DOS con VM Ware
Instalación de MS-DOS con VM WarePablo Macon
 
Como Trabaja un Procesador
Como Trabaja un ProcesadorComo Trabaja un Procesador
Como Trabaja un ProcesadorPablo Macon
 
Práctico motherboard
Práctico motherboardPráctico motherboard
Práctico motherboardPablo Macon
 
Sistemas de archivo - FAT - NTFS
Sistemas de archivo - FAT - NTFSSistemas de archivo - FAT - NTFS
Sistemas de archivo - FAT - NTFSPablo Macon
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágilesPablo Macon
 
Introducción al proyecto
Introducción al proyectoIntroducción al proyecto
Introducción al proyectoPablo Macon
 

Más de Pablo Macon (20)

Ejercicios3 - msdos - comandos para archivos
Ejercicios3 - msdos - comandos para archivosEjercicios3 - msdos - comandos para archivos
Ejercicios3 - msdos - comandos para archivos
 
Ejercicios directorios ii msdos
Ejercicios directorios ii msdosEjercicios directorios ii msdos
Ejercicios directorios ii msdos
 
Comandos para archivos msdos
Comandos para archivos msdosComandos para archivos msdos
Comandos para archivos msdos
 
Ejercicios ms dos - i directorios
Ejercicios ms dos - i directoriosEjercicios ms dos - i directorios
Ejercicios ms dos - i directorios
 
Directorios y caminos
Directorios y caminosDirectorios y caminos
Directorios y caminos
 
Prueba try
Prueba tryPrueba try
Prueba try
 
Comandos basicos ii directorios
Comandos basicos ii   directoriosComandos basicos ii   directorios
Comandos basicos ii directorios
 
Comandos Básicos DOS - comandos del Sistema
Comandos Básicos DOS - comandos del SistemaComandos Básicos DOS - comandos del Sistema
Comandos Básicos DOS - comandos del Sistema
 
Instalación de MS-DOS con VM Ware
Instalación de MS-DOS con VM WareInstalación de MS-DOS con VM Ware
Instalación de MS-DOS con VM Ware
 
Cpu
CpuCpu
Cpu
 
Overclock
OverclockOverclock
Overclock
 
Como Trabaja un Procesador
Como Trabaja un ProcesadorComo Trabaja un Procesador
Como Trabaja un Procesador
 
Práctico motherboard
Práctico motherboardPráctico motherboard
Práctico motherboard
 
Placa madre
Placa madrePlaca madre
Placa madre
 
Sistemas de archivo - FAT - NTFS
Sistemas de archivo - FAT - NTFSSistemas de archivo - FAT - NTFS
Sistemas de archivo - FAT - NTFS
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
Introducción al proyecto
Introducción al proyectoIntroducción al proyecto
Introducción al proyecto
 
Gabinete PC
Gabinete PCGabinete PC
Gabinete PC
 
Nucleo kernel
Nucleo kernelNucleo kernel
Nucleo kernel
 
Herencia - Java
Herencia - JavaHerencia - Java
Herencia - Java
 

Último

Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Cuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfCuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfBrandonsanchezdoming
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativafiorelachuctaya2
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfCarol Andrea Eraso Guerrero
 

Último (20)

Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Cuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdfCuadernillo de las sílabas trabadas.pdf
Cuadernillo de las sílabas trabadas.pdf
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
plan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativaplan-de-trabajo-colegiado en una institucion educativa
plan-de-trabajo-colegiado en una institucion educativa
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.pdfTarea 5-Selección de herramientas digitales-Carol Eraso.pdf
Tarea 5-Selección de herramientas digitales-Carol Eraso.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