View
232
Download
0
Embed Size (px)
Citation preview
7/23/2019 Script Linux 1
1/127
1
SCRIPTSCRIPT
LINUXLINUX
7/23/2019 Script Linux 1
2/127
2
1.1. Qu es un script de Linux?Qu es un script de Linux?
1.1. Creacin del primer script1.1. Creacin del primer script
2.2. Comentarios y lneas en blancoComentarios y lneas en blanco
3.3. Deinicin de !ariablesDeinicin de !ariables
".". #aso de ar$umentos al script#aso de ar$umentos al script
%.%. &structura condicional&structura condicional
%.1. &structura i%.1. &structura i
%.2. &structura case%.2. &structura case
%.3. Condiciones%.3. Condiciones
%.3.1. Cadena de texto%.3.1. Cadena de texto%.3.2. '(meros enteros%.3.2. '(meros enteros
%.3.3. )obre ic*eros%.3.3. )obre ic*eros
%.3.". 'e$acin%.3.". 'e$acin
%.3.%. +peradores l$icos%.3.%. +peradores l$icos
,.,. &ntrada de datos por parte del usuario&ntrada de datos por parte del usuario-.-. &structura iterati!a. ucles&structura iterati!a. ucles
-.1. &structura or-.1. &structura or
-.2. &structura /*ile-.2. &structura /*ile
0.0. +tros elementos importantes+tros elementos importantes
.. uncionesunciones
7/23/2019 Script Linux 1
3/127
3
1. Qu es un script de Linux?
7/23/2019 Script Linux 1
4/127
"
1. Qu es un script de Linux?
&s un ic*ero de comandos 4ue la consolainterpreta y e5ecuta 6similar a los .bat7
8 9umenta la comodidad en la e5ecucin de procesos
8 9utomati:a tareas comple5as
8 )e utili:an durante el proceso de arran4ue;parada del
sistema
8 Los utili:an muc*as otras *erramientas
7/23/2019 Script Linux 1
5/127
%
1.1. Creacin del primer script
9brimos un ic*ero de texto con un editor &scribimos los comandos en su interior
7/23/2019 Script Linux 1
6/127
,
1.1. Creacin del primer script
bas* =ic*ero script>
;ruta;=ic*ero script>
8 Debemos colocar en este caso como primera lnea
@;bin;bas*
8 Aenemos 4ue cambiar los permisos del ic*ero para 4ue
se pueda e5ecutar8 Aras los dos cambios anteriores podremos e5ecutarlo
;rutaBabsoluta;=ic*ero script>
.;=ic*ero script> si est en el directorio acti!o
7/23/2019 Script Linux 1
7/127
-
2. Comentarios y lneas en blanco
7/23/2019 Script Linux 1
8/127
0
2. Comentarios y lneas en blanco
n salto de lnea o lnea en blanco noeect(a nin$una operacin durante la
e5ecucin del pro$rama
Las lneas con comentarios empie:an con .Aampoco tendrn nin$(n eecto sobre la
e5ecucin
Los comentarios se utili:an para aclarar lo4ue reali:a el cdi$o
7/23/2019 Script Linux 1
9/127
3. Deinicin de !ariables
7/23/2019 Script Linux 1
10/127
1E
3. Deinicin de !ariables
na !ariable es un nombre simblico 4uealmacena un !alor
La deinicin de una !ariable se reali:a
nombreF!ariableG!alor
#ara usar el !alor de la !ariableH
anteponemos al nombre el smbolo I
&5emploJSTR=Hola
echo $STR
7/23/2019 Script Linux 1
11/127
11
3. Deinicin de !ariables
Keamos el usoJ
K91GMi
K91GMola
K92G-
K91GND
K92G%
ec*o IK91
ec*o IK92
K92GIK91
'omKar Kalor
K91 Mi
usuarioOusuarioBdesPtopJ;script
7/23/2019 Script Linux 1
12/127
12
3. Deinicin de !ariables
Keamos el usoJ
K91GMi
K91GMola
K92G-
K91GND
K92G%
ec*o IK91
ec*o IK92
K92GIK91
'omKar Kalor
K91 Molaor
usuarioOusuarioBdesPtopJ;script
7/23/2019 Script Linux 1
13/127
13
3. Deinicin de !ariables
Keamos el usoJ
K91GMi
K91GMola
K92G-
K91GND
K92G%
ec*o IK91
ec*o IK92
K92GIK91
'omKar Kalor
K91 Molaor
K92 -or
usuarioOusuarioBdesPtopJ;script
7/23/2019 Script Linux 1
14/127
1"
3. Deinicin de !ariables
Keamos el usoJ
K91GMi
K91GMola
K92G-
K91GND
K92G%
ec*o IK91
ec*o IK92
K92GIK91
'omKar Kalor
K91 NDor
K92 -or
usuarioOusuarioBdesPtopJ;script
7/23/2019 Script Linux 1
15/127
1%
3. Deinicin de !ariables
Keamos el usoJ
K91GMi
K91GMola
K92G-
K91GND
K92G%
ec*o IK91
ec*o IK92
K92GIK91
'omKar Kalor
K91 NDor
K92 %or
usuarioOusuarioBdesPtopJ;script
7/23/2019 Script Linux 1
16/127
1,
3. Deinicin de !ariables
Keamos el usoJ
K91GMi
K91GMola
K92G-
K91GND
K92G%
ec*o IK91
ec*o IK92
K92GIK91
'omKar Kalor
K91 NDor
K92 %or
usuarioOusuarioBdesPtopJ;script
ND
7/23/2019 Script Linux 1
17/127
1-
3. Deinicin de !ariables
Keamos el usoJ
K91GMi
K91GMola
K92G-
K91GND
K92G%
ec*o IK91
ec*o IK92
K92GIK91
'omKar Kalor
K91 NDor
K92 %or
usuarioOusuarioBdesPtopJ;script
ND
%
7/23/2019 Script Linux 1
18/127
10
3. Deinicin de !ariables
Keamos el usoJ
K91GMi
K91GMola
K92G-
K91GND
K92G%
ec*o IK91
ec*o IK92
K92GIK91
'omKar Kalor
K91 NDor
K92 NDor
usuarioOusuarioBdesPtopJ;script
ND
%
7/23/2019 Script Linux 1
19/127
1
". #aso de ar$umentos al script
7/23/2019 Script Linux 1
20/127
2E
". #aso de ar$umentos al script
Los scripts 4ue creamos podemos pasarlear$umentos al llamarlos
.;Nombre_Scriptar$1 ar$2 R ar$'
Los elementos a reco$er desde el scriptJ
8 IE 'ombre del script
8 I1H I2H RH I los nue!e primeros ar$umentos
8 I n(mero de ar$umentos pasados al script
8 IOH IStodos los ar$umentosH empe:ando por I1
7/23/2019 Script Linux 1
21/127
21
%. &structura condicional
7/23/2019 Script Linux 1
22/127
22
%. &structura condicional
'os permite indicar si e5ecutamos ciertoscomandos o no se$(n las condiciones 4ue
existan
#ara ello necesitaremos elementos 4ue nospermitan *acer la e!aluacin de dic*as
condiciones
&xisten dos estructuras condiciones para losscriptH i y case
7/23/2019 Script Linux 1
23/127
%.1. &structura i
i =condicin>t*en
=comandos>
i
i =condicin>
t*en
=comandos>else
=comandos>
i
i =condicin>
t*en
=comandos>
eli =condicin>
t*en
=comandos>
Relse
=comandos>
i
23
7/23/2019 Script Linux 1
24/127
%.1. &structura i
i T UooV G UooV W
t*en
ec*o U)i es ciertoV
i
ec*o U)iempreVi T UI1V G U*olaV W
t*en
ec*o U)i es !erdadV
else
ec*o U)i es alsaV
i
ec*o in
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
t*enec*o &s adis
eli T UI1V G ULinuxV W
t*en
ec*o &s Linux
else
ec*o &s otra cosa
i2"
7/23/2019 Script Linux 1
25/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
2%
'omKar Kalor
I1 adisor
J;script .;pruebaX adis
FALSO
7/23/2019 Script Linux 1
26/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
2,
'omKar Kalor
I1 adisor
J;script .;pruebaX adis
CIERTO
7/23/2019 Script Linux 1
27/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
2-
'omKar Kalor
I1 adisor
J;script .;pruebaX adis
7/23/2019 Script Linux 1
28/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
20
'omKar Kalor
I1 adisor
J;script .;pruebaX adis
&s adis
7/23/2019 Script Linux 1
29/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
2
'omKar Kalor
I1 adisor
J;script .;pruebaX adis
&s adis
7/23/2019 Script Linux 1
30/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
3E
'omKar Kalor
I1 adisor
J;script .;pruebaX adis
&s adis
in
7/23/2019 Script Linux 1
31/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
31
'omKar Kalor
I1 adisor
J;script .;pruebaX adis
&s adis
in
7/23/2019 Script Linux 1
32/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
32
'omKar Kalor
I1 NDor
J;script .;pruebaX ND
FALSO
7/23/2019 Script Linux 1
33/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
33
'omKar Kalor
I1 NDor
J;script .;pruebaX ND
FALSO
7/23/2019 Script Linux 1
34/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
3"
'omKar Kalor
I1 NDor
J;script .;pruebaX NDFALSO
7/23/2019 Script Linux 1
35/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
3%
'omKar Kalor
I1 NDor
J;script .;pruebaX ND
7/23/2019 Script Linux 1
36/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
3,
'omKar Kalor
I1 NDor
J;script .;pruebaX ND
&s otra cosa
7/23/2019 Script Linux 1
37/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
3-
'omKar Kalor
I1 NDor
J;script .;pruebaX ND
&s otra cosa
7/23/2019 Script Linux 1
38/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
30
'omKar Kalor
I1 NDor
J;script .;pruebaX ND
&s otra cosa
in
7/23/2019 Script Linux 1
39/127
%.1. &structura i
i T UI1V G U*olaV Wt*en
ec*o &s *ola
eli T UI1V G UadisV W
ec*o &s adis
eli T UI1V G ULinuxV W
ec*o &s Linux
elseec*o &s otra cosa
i
ec*o in
3
'omKar Kalor
I1 NDor
J;script .;pruebaX ND
&s otra cosa
in
7/23/2019 Script Linux 1
40/127
%.2. &structura case
case =!ariable>
in
expresin 17
=blo4ue 1>
YY
expresin 27=blo4ue 2>
YY
expresin 37
=blo4ue 3>
YY
S7
=blo4ue por deecto>
YY
esac
"E
7/23/2019 Script Linux 1
41/127
%.2. &structura case
case I1
in
U*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
"1
'omKar Kalor
I1 adisor
J;script .;pruebaCase adis
7/23/2019 Script Linux 1
42/127
%.2. &structura case
case I1
in
U*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
"2
'omKar Kalor
I1 adisor
J;script .;pruebaCase adis
7/23/2019 Script Linux 1
43/127
%.2. &structura case
case I1
in
U*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
"3
'omKar Kalor
I1 adisor
J;script .;pruebaCase adis
COINCIDE
7/23/2019 Script Linux 1
44/127
%.2. &structura case
case I1
inU*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
""
'omKar Kalor
I1 adisor
J;script .;pruebaCase adis
&s 9DX+)
2
7/23/2019 Script Linux 1
45/127
%.2. &structura case
case I1
inU*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
"%
'omKar Kalor
I1 adisor
J;script .;pruebaCase adis
&s 9DX+)
% 2 &
7/23/2019 Script Linux 1
46/127
%.2. &structura case
case I1
inU*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
",
'omKar Kalor
I1 NDor
J;script .;pruebaCase ND
% 2 &
7/23/2019 Script Linux 1
47/127
%.2. &structura case
case I1
inU*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
"-
'omKar Kalor
I1 NDor
J;script .;pruebaCase ND
% 2 & t t
7/23/2019 Script Linux 1
48/127
%.2. &structura case
case I1
inU*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
"0
'omKar Kalor
I1 NDor
J;script .;pruebaCase ND
% 2 & t t
7/23/2019 Script Linux 1
49/127
%.2. &structura case
case I1
inU*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
"
'omKar Kalor
I1 NDor
J;script .;pruebaCase ND
% 2 & t t
7/23/2019 Script Linux 1
50/127
%.2. &structura case
case I1
inU*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
%E
'omKar Kalor
I1 NDor
J;script .;pruebaCase ND
% 2 & t t
7/23/2019 Script Linux 1
51/127
%.2. &structura case
case I1
inU*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
%1
'omKar Kalor
I1 NDor
J;script .;pruebaCase ND
&s +A9 C+)9
% 2 & t t
7/23/2019 Script Linux 1
52/127
%.2. &structura case
case I1
inU*olaV7
ec*o &s M+L9
YY
UadisV7ec*o &s 9DX+)
YY
ULinuxV7
ec*o &s Linux
YY
S7
ec*o &s +A9 C+)9
YY
esac
%2
'omKar Kalor
I1 NDor
J;script .;pruebaCase ND
&s +A9 C+)9
% 3 C di i
7/23/2019 Script Linux 1
53/127
%3
%.3. Condiciones
)e utili:an para los apartados 4ue se indicabancomo
7/23/2019 Script Linux 1
54/127
%"
%.3.1. Cadena de texto
T UIaV G UIbV W X$ualdad
T UIaV GG UIbV W X$ualdad
T UIaV @G UIbV W Desi$ualdad
T UIaV Z= UIbV W +rden alabtico
T UIaV Z> UIbV W +rden alabtico in!erso
T B: UIaV W )i la !ariable es !acaH es !erdad
T Bn UIaV W )i contiene al$oH es !erdad
% 3 2 '(meros enteros
7/23/2019 Script Linux 1
55/127
%%
%.3.2. '(meros enteros
T UIaV Be4 UIbV W X$ualdad
T UIaV Bne UIbV W Desi$ualdad
T UIaV B$t UIbV W [ayor 4ueT UIaV Blt UIbV W [enor 4ue
T UIaV B$e UIbV W [ayor o i$ual 4ue
T UIaV Ble UIbV W [enor o i$ual 4ue
% 3 3 Condiciones sobre ic*eros
7/23/2019 Script Linux 1
56/127
%,
%.3.3. Condiciones sobre ic*eros
T Be nombre ic*ero W existencia
T B nombre ic*ero W es ic*ero ordinario
T Bs nombre ic*ero W es ic*ero !aco 6E bytes7
T Bd nombre ic*ero W es directorio
T Bb nombre ic*ero W es dispositi!o de blo4ues
T Bc nombre ic*ero W es dispositi!o de caracteres
T BL nombre ic*ero W es enlace simblico
T Br nombre ic*ero W tiene permiso de lectura
T Bx nombre ic*ero W tiene permiso de e5ecucin
T B/ nombre ic*ero W tiene permiso de escritura
% 3 3 Condiciones sobre ic*eros
7/23/2019 Script Linux 1
57/127
%-
%.3.3. Condiciones sobre ic*eros
T B+ nombre ic*ero W somos propietarios del ic*ero6XD7
T B< nombre ic*ero W somos propietarios del ic*ero
6
7/23/2019 Script Linux 1
58/127
%0
%.3.". 'e$acin
)e usa el carcter @
T @ 8e ic*ero W
T @ 8 ic*ero W
% 3 % +peradores l$icos
7/23/2019 Script Linux 1
59/127
%
%.3.%. +peradores l$icos
'os permite concatenar expresiones
condicionales. #ara ello se debe recordar losoperadores 9'D y +H tomando CX&A+ como 1
y 9L)+ como E
T Uexpr1V Ba Uexpr2V W 9'D entre expr1 y expr2
T Uexpr1V Bo Uexpr2V W + entre expr1 y expr2
T expr1 W \\ T expr2 W E 9'D E G EE 9'D 1 G E
1 9'D E G E
1 9'D 1 G 1
E + E G EE + 1 G 1
1 + E G 1
1 + 1 G 1
7/23/2019 Script Linux 1
60/127
,E
,. &ntrada de datos por parte del usuario
, &ntrada de datos por parte del usuario
7/23/2019 Script Linux 1
61/127
,1
,. &ntrada de datos por parte del usuario
La entrada de datos por parte del usuario nonecesariamente tiene 4ue *acerse mediante los
ar$umentos
[ediante reapodemos solicitar 4ue se introdu:caal$(n parmetro 4ue 4ueramos utili:ar durante la
e5ecucin
9l encontrarse con dic*a instruccinH la e5ecucinse detendr a la espera del dato
rea nombreF!ariable
, &ntrada de datos por parte del usuario
7/23/2019 Script Linux 1
62/127
,. &ntrada de datos por parte del usuario
ec*o Xntrodu:ca un dato
read D9A+
ec*o ID9A+
,2
'omKar Kalor
J;script .;pruebaDatos
, &ntrada de datos por parte del usuario
7/23/2019 Script Linux 1
63/127
,. &ntrada de datos por parte del usuario
ec*o Xntrodu:ca un dato
read D9A+
ec*o ID9A+
,3
'omKar Kalor
J;script .;pruebaDatos
Xntrodu:ca un dato
, &ntrada de datos por parte del usuario
7/23/2019 Script Linux 1
64/127
,. &ntrada de datos por parte del usuario
ec*o Xntrodu:ca un dato
read D9A+
ec*o ID9A+
,"
'omKar Kalor
J;script .;pruebaDatos
Xntrodu:ca un dato
, &ntrada de datos por parte del usuario
7/23/2019 Script Linux 1
65/127
,. &ntrada de datos por parte del usuario
ec*o Xntrodu:ca un dato
read D9A+
ec*o ID9A+
,%
'omKar Kalor
J;script .;pruebaDatos
Xntrodu:ca un dato
NND
D9A+ NNDor
, &ntrada de datos por parte del usuario
7/23/2019 Script Linux 1
66/127
,. &ntrada de datos por parte del usuario
ec*o Xntrodu:ca un dato
read D9A+
ec*o ID9A+
,,
'omKar Kalor
J;script .;pruebaDatos
Xntrodu:ca un dato
NND
NND
D9A+ NNDor
, &ntrada de datos por parte del usuario
7/23/2019 Script Linux 1
67/127
,. &ntrada de datos por parte del usuario
ec*o Xntrodu:ca un dato
read D9A+
ec*o ID9A+
,-
'omKar Kalor
J;script .;pruebaDatos
Xntrodu:ca un dato
NND
NND
J;script
D9A+ NNDor
7/23/2019 Script Linux 1
68/127
,0
-. &structura iterati!a. ucles
- &structura iterati!a ucles
7/23/2019 Script Linux 1
69/127
,
-. &structura iterati!a. ucles
)e utili:an cuando 4ueremos repetir una accin unn(mero de !ecesH 4ue puede ser i5o o
dependiente de al$una !ariable
Keremos los bucles /*ile y orH para b(s4uedas y
recorridos respecti!amente
&xisten otros tipos de bucles para los script de
LinuxH como #ntilH pero no los estudiaremos
- 1 &structura or
7/23/2019 Script Linux 1
70/127
-.1. &structura or
or =!ariable> in =recorrido>
do
=comandos>done
-E
- 1 &structura or
7/23/2019 Script Linux 1
71/127
-.1. &structura or
or i in I6ls7
do
ec*o ic*eroJ Ii
done
ec*o in
-1
'omKar Kalor
J;script ls
ic*1 ic*2 ic*3
J;script .;or1
- 1 &structura or
7/23/2019 Script Linux 1
72/127
-.1. &structura or
or i in I6ls7
do
ec*o ic*eroJ Ii
done
ec*o in
-2
i ic*1or
'omKar Kalor
J;script ls
ic*1 ic*2 ic*3
J;script .;or1
- 1 &structura or
7/23/2019 Script Linux 1
73/127
-.1. &structura or
or i in I6ls7
do
ec*o ic*eroJ Ii
done
ec*o in
-3
i ic*1or
'omKar Kalor
J;script ls
ic*1 ic*2 ic*3
J;script .;or1
ic*eroJ ic*1
- 1 &structura or
7/23/2019 Script Linux 1
74/127
-.1. &structura or
or i in I6ls7
do
ec*o ic*eroJ Ii
done
ec*o in
-"
i ic*2or
'omKar Kalor
J;script ls
ic*1 ic*2 ic*3
J;script .;or1
ic*eroJ ic*1
- 1 &structura or
7/23/2019 Script Linux 1
75/127
-.1. &structura or
or i in I6ls7
do
ec*o ic*eroJ Ii
done
ec*o in
-%
i ic*2or
'omKar Kalor
J;script ls
ic*1 ic*2 ic*3
J;script .;or1
ic*eroJ ic*1
ic*eroJ ic*2
- 1 &structura or
7/23/2019 Script Linux 1
76/127
-.1. &structura or
or i in I6ls7
do
ec*o ic*eroJ Ii
done
ec*o in
-,
i ic*3or
'omKar Kalor
J;script ls
ic*1 ic*2 ic*3
J;script .;or1
ic*eroJ ic*1
ic*eroJ ic*2
-.1. &structura or
7/23/2019 Script Linux 1
77/127
-.1. &structura or
or i in I6ls7
do
ec*o ic*eroJ Ii
done
ec*o in
--
i ic*3or
'omKar Kalor
J;script ls
ic*1 ic*2 ic*3
J;script .;or1
ic*eroJ ic*1
ic*eroJ ic*2
ic*eroJ ic*3
-.1. &structura or
7/23/2019 Script Linux 1
78/127
-.1. &structura or
or i in I6ls7
do
ec*o ic*eroJ Ii
done
ec*o in
-0
i ic*3or
'omKar Kalor
J;script ls
ic*1 ic*2 ic*3
J;script .;or1
ic*eroJ ic*1
ic*eroJ ic*2
ic*eroJ ic*3
-.1. &structura or
7/23/2019 Script Linux 1
79/127
-.1. &structura or
or i in I6ls7
do
ec*o ic*eroJ Ii
done
ec*o in
-
i ic*3or
'omKar Kalor
J;script ls
ic*1 ic*2 ic*3
J;script .;or1
ic*eroJ ic*1
ic*eroJ ic*2
ic*eroJ ic*3
in
-.1. &structura or
7/23/2019 Script Linux 1
80/127
0E
-.1. &structura or
Keamos otro e5emplo con el bucle or
&n este caso !amos a utili:ar el elemento e%H
cuya sintaxis esJ
se4 =!alor inicial> =!alor inal>
&l !alor de la !ariable se ir incrementando de uno
en uno. [e5or el e5emplo para entenderlo me5or
-.1. &structura or
7/23/2019 Script Linux 1
81/127
-.1. &structura or
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
01
'omKar Kalor
J;script .;or2
-.1. &structura or
7/23/2019 Script Linux 1
82/127
st uctu a o
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
02
'omKar Kalor
J;script .;or2
i 1or
-.1. &structura or
7/23/2019 Script Linux 1
83/127
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
03
'omKar Kalor
J;script .;or2
KalorJ 1
i 1or
-.1. &structura or
7/23/2019 Script Linux 1
84/127
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
0"
'omKar Kalor
J;script .;or2
KalorJ 1
i 2or
-.1. &structura or
7/23/2019 Script Linux 1
85/127
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
0%
'omKar Kalor
J;script .;or2
KalorJ 1
KalorJ 2
i 2or
-.1. &structura or
7/23/2019 Script Linux 1
86/127
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
0,
'omKar Kalor
J;script .;or2
KalorJ 1
KalorJ 2
i 3or
-.1. &structura or
7/23/2019 Script Linux 1
87/127
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
0-
'omKar Kalor
J;script .;or2
KalorJ 1
KalorJ 2
KalorJ 3
i 3or
-.1. &structura or
7/23/2019 Script Linux 1
88/127
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
00
'omKar Kalor
J;script .;or2
KalorJ 1
KalorJ 2
KalorJ 3
i " r
-.1. &structura or
7/23/2019 Script Linux 1
89/127
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
0
'omKar Kalor
J;script .;or2
KalorJ 1
KalorJ 2
KalorJ 3
KalorJ "
i " r
-.1. &structura or
7/23/2019 Script Linux 1
90/127
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
E
'omKar Kalor
J;script .;or2
KalorJ 1
KalorJ 2
KalorJ 3
KalorJ "
i % r
-.1. &structura or
7/23/2019 Script Linux 1
91/127
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
1
'omKar Kalor
J;script .;or2
KalorJ 1
KalorJ 2
KalorJ 3
KalorJ "KalorJ %
i % r
-.1. &structura or
7/23/2019 Script Linux 1
92/127
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
2
'omKar Kalor
J;script .;or2
KalorJ 1
KalorJ 2
KalorJ 3
KalorJ "KalorJ %
i % r
-.1. &structura or
7/23/2019 Script Linux 1
93/127
or i in I6se4 1 %7
do
ec*o KalorJ Ii
done
ec*o in
3
'omKar Kalor
J;script .;or2
KalorJ 1
KalorJ 2
KalorJ 3
KalorJ "KalorJ %
in
i % r
-.2. &structura /*ile
7/23/2019 Script Linux 1
94/127
/*ile =condicin>
do
=comandos>
done
"
-.2. &structura /*ile
7/23/2019 Script Linux 1
95/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
done
ec*o in
%
'omKar Kalor
J;script .;pru/*ile
-.2. &structura /*ile
7/23/2019 Script Linux 1
96/127
,
'omKar Kalor
J;script .;pru/*ile
a Eor
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
done
ec*o in
-.2. &structura /*ile
7/23/2019 Script Linux 1
97/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
done
ec*o in
-
'omKar Kalor
J;script .;pru/*ile
a EorSe c#mple
-.2. &structura /*ile
7/23/2019 Script Linux 1
98/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
done
ec*o in
0
'omKar Kalor
J;script .;pru/*ile
KalorJ E
a Eor
-.2. &structura /*ile
7/23/2019 Script Linux 1
99/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
done
ec*o in
'omKar Kalor
J;script .;pru/*ile
KalorJ E
a 1or
-.2. &structura /*ile
7/23/2019 Script Linux 1
100/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
done
ec*o in
1EE
'omKar Kalor
J;script .;pru/*ile
KalorJ E
a 1orSe c#mple
-.2. &structura /*ile
7/23/2019 Script Linux 1
101/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
doneec*o in
1E1
'omKar Kalor
J;script .;pru/*ile
KalorJ E
KalorJ 1
a 1or
-.2. &structura /*ile
7/23/2019 Script Linux 1
102/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
doneec*o in
1E2
'omKar Kalor
J;script .;pru/*ile
KalorJ E
KalorJ 1
a 2or
-.2. &structura /*ile
7/23/2019 Script Linux 1
103/127
R tras - iteraciones
1E3
-.2. &structura /*ile
7/23/2019 Script Linux 1
104/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
doneec*o in
1E"
'omKar Kalor
J;script .;pru/*ile
KalorJ E
KalorJ 1
R
KalorJ
a or
-.2. &structura /*ile
7/23/2019 Script Linux 1
105/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
doneec*o in
1E%
'omKar Kalor
J;script .;pru/*ile
KalorJ E
KalorJ 1
R
KalorJ
a 1Eor
-.2. &structura /*ile
7/23/2019 Script Linux 1
106/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
doneec*o in
1E,
'omKar Kalor
J;script .;pru/*ile
KalorJ E
KalorJ 1
R
KalorJ
a 1EorNo e c#mple
-.2. &structura /*ile
7/23/2019 Script Linux 1
107/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
doneec*o in
1E-
'omKar Kalor
J;script .;pru/*ile
KalorJ E
KalorJ 1
R
KalorJ in
a 1Eor
-.2. &structura /*ile
7/23/2019 Script Linux 1
108/127
aGE
/*ile T Ia 8lt 1E W
do
ec*o KalorJ Ia
let aGa]1
doneec*o in
1E0
'omKar Kalor
J;script .;pru/*ile
KalorJ E
KalorJ 1
R
KalorJ in
a 1Eor
7/23/2019 Script Linux 1
109/127
1E
0. +tros elementos importantes
0. +tros elementos importantes
7/23/2019 Script Linux 1
110/127
11E
sar el resultado de un comando como !alor de
otro comandoJ
8 aGI6p/d7 &n a almacena el !alor de p/d
ls Ia [uestra el listado de a
#ara salir de un script
8 &xit
9si$nacin de un nue!o !alor a una !ariable
8 let =!ariable>G=expresin>
&5emploJ let aG1]3
let aGIa]1
0. +tros elementos importantes
7/23/2019 Script Linux 1
111/127
111
+peraciones aritmticasJ
8 )uma 6]7 2]3
8 esta 6B7 2B3
8 [ultiplicacin 6S7 3S%
8 Di!isin entera 6;7 3;2
8 esto de di!isin entera 6^7 3^2
8 &xponenciacin 6SS7 3SS2
S Ker man bc para operaciones ms comple5as
7/23/2019 Script Linux 1
112/127
112
. unciones
. unciones
7/23/2019 Script Linux 1
113/127
113
&s un elemento 4ue no es totalmente
imprescindible para escribir un scriptH pero acilita
muc*o la labor
#ermite di!idir en mdulos la tarea a e5ecutar
La uncin se caracteri:a por su nombre #uede tener ar$umentos de entrada cuyo !alor se
determina en la llamada a la uncin
Keamos la estructura y e5emplos de uso de unauncin
. unciones
7/23/2019 Script Linux 1
114/127
&Declaramo la '#nci!n( inicano %#e hace
unction =nombre>
_
=comandos>
`
&El l#)ar ee el %#e e in*oca a la '#nci!n
=nombre> ar$1 ar$2 R ar$'
S 'otaJ Los ar$umentos simplemente se colocan separados por un espacioH utili:ndolosen la uncin con I1H I2H etc
11"
. unciones
7/23/2019 Script Linux 1
115/127
unction *ola _
ec*o Mola
`
unction salir _
ec*o )alir
`
&In*ocaci!n*ola
salir
11%
'omKar Kalor
J;script .;pruun1
. unciones
7/23/2019 Script Linux 1
116/127
unction *ola _
ec*o Mola
`
unction salir _
ec*o )alir
`
&In*ocaci!n*ola
salir
11,
'omKar Kalor
J;script .;pruun1
. unciones
7/23/2019 Script Linux 1
117/127
unction *ola _
ec*o Mola
`
unction salir _
ec*o )alir
`
&In*ocaci!n*ola
salir
11-
'omKar Kalor
J;script .;pruun1
. unciones
7/23/2019 Script Linux 1
118/127
unction *ola _
ec*o Mola
`
unction salir _
ec*o )alir
`
&In*ocaci!n*ola
salir
110
'omKar Kalor
J;script .;pruun1
Mola
. unciones
7/23/2019 Script Linux 1
119/127
unction *ola _
ec*o Mola
`
unction salir _
ec*o )alir
`
&In*ocaci!n*ola
salir
11
'omKar Kalor
J;script .;pruun1
Mola
. unciones
7/23/2019 Script Linux 1
120/127
unction *ola _
ec*o Mola
`
unction salir _
ec*o )alir
`
&In*ocaci!n*ola
salir
12E
'omKar Kalor
J;script .;pruun1
Mola
. unciones
7/23/2019 Script Linux 1
121/127
unction *ola _
ec*o Mola
`
unction salir _
ec*o )alir
`
&In*ocaci!n*ola
salir
121
'omKar Kalor
J;script .;pruun1
Mola
)alir
. unciones
7/23/2019 Script Linux 1
122/127
unction *ola _
ec*o Mola
`
unction salir _
ec*o )alir
`
&In*ocaci!n*ola
salir
122
'omKar Kalor
J;script .;pruun1
Mola
)alir
J;script
. unciones
7/23/2019 Script Linux 1
123/127
unction imprimir _
ec*o I1
`
imprimir Mola
123
'omKar Kalor
J;script .;pruun2
. unciones
7/23/2019 Script Linux 1
124/127
unction imprimir _
ec*o I1
`
imprimir Mola
12"
'omKar Kalor
J;script .;pruun2
. unciones
7/23/2019 Script Linux 1
125/127
unction imprimir _
ec*o I1
`
imprimir Mola
12%
'omKar Kalor
J;script .;pruun2
I1 Molaor
. unciones
7/23/2019 Script Linux 1
126/127
unction imprimir _
ec*o I1
`
imprimir Mola
12,
'omKar Kalor
J;script .;pruun2
Mola
I1 Molaor
. unciones
7/23/2019 Script Linux 1
127/127
unction imprimir _
ec*o I1
`
imprimir Mola
'omKar Kalor
J;script .;pruun2
Mola
J;script
I1 Molaor