Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LINUX
1
1. Qu es un script de Linux?
1.1. Creacin del primer script
2. Comentarios y lneas en blanco
3. Definicin de variables
4. Paso de argumentos al script
5. Estructura condicional
5.1. Estructura if
5.2. Estructura case
5.3. Condiciones
5.3.1. Cadena de texto
5.3.2. Nmeros enteros
5.3.3. Sobre ficheros
5.3.4. Negacin
5.3.5. Operadores lgicos
6. Entrada de datos por parte del usuario
7. Estructura iterativa. Bucles
7.1. Estructura for
7.2. Estructura while
8. Otros elementos importantes
9. Funciones
1. Qu es un script de Linux?
1. Qu es un script de Linux?
Es un fichero de comandos que la consola
interpreta y ejecuta (similar a los .bat)
Aumenta la comodidad en la ejecucin de procesos
Automatiza tareas complejas
Se utilizan durante el proceso de arranque/parada del
sistema
Los utilizan muchas otras herramientas
Cmo lo ejecutamos?
5
3. Definicin de variables
3. Definicin de variables
Una variable es un nombre simblico que
almacena un valor
La definicin de una variable se realiza
nombre_variable=valor
3. Definicin de variables
Veamos el uso:
VAR1=Hi
VAR1=Hola
VAR2=7
VAR1=XD
VAR2=5
echo $VAR1
echo $VAR2
VAR2=$VAR1
NomVar
Valor
VAR1
Hi
usuario@usuario-desktop:~/script
11
3. Definicin de variables
Veamos el uso:
VAR1=Hi
VAR1=Hola
VAR2=7
VAR1=XD
VAR2=5
echo $VAR1
echo $VAR2
VAR2=$VAR1
NomVar
Valor
VAR1
Holaor
usuario@usuario-desktop:~/script
12
3. Definicin de variables
Veamos el uso:
VAR1=Hi
VAR1=Hola
VAR2=7
VAR1=XD
VAR2=5
echo $VAR1
echo $VAR2
VAR2=$VAR1
NomVar
Valor
VAR1
Holaor
VAR2
7or
usuario@usuario-desktop:~/script
13
3. Definicin de variables
Veamos el uso:
VAR1=Hi
VAR1=Hola
VAR2=7
VAR1=XD
VAR2=5
echo $VAR1
echo $VAR2
VAR2=$VAR1
NomVar
Valor
VAR1
XDor
VAR2
7or
usuario@usuario-desktop:~/script
14
3. Definicin de variables
Veamos el uso:
VAR1=Hi
VAR1=Hola
VAR2=7
VAR1=XD
VAR2=5
echo $VAR1
echo $VAR2
VAR2=$VAR1
NomVar
Valor
VAR1
XDor
VAR2
5or
usuario@usuario-desktop:~/script
15
3. Definicin de variables
Veamos el uso:
VAR1=Hi
VAR1=Hola
VAR2=7
VAR1=XD
VAR2=5
echo $VAR1
echo $VAR2
VAR2=$VAR1
NomVar
Valor
VAR1
XDor
VAR2
5or
usuario@usuario-desktop:~/script
XD
16
3. Definicin de variables
Veamos el uso:
VAR1=Hi
VAR1=Hola
VAR2=7
VAR1=XD
VAR2=5
echo $VAR1
echo $VAR2
VAR2=$VAR1
NomVar
Valor
VAR1
XDor
VAR2
5or
usuario@usuario-desktop:~/script
XD
5
17
3. Definicin de variables
Veamos el uso:
VAR1=Hi
VAR1=Hola
VAR2=7
VAR1=XD
VAR2=5
echo $VAR1
echo $VAR2
VAR2=$VAR1
NomVar
Valor
VAR1
XDor
VAR2
XDor
usuario@usuario-desktop:~/script
XD
5
18
19
5. Estructura condicional
21
5. Estructura condicional
Nos permite indicar si ejecutamos ciertos
comandos o no segn las condiciones que
existan
Para ello necesitaremos elementos que nos
permitan hacer la evaluacin de dichas
condiciones
Existen dos estructuras condiciones para los
script, if y case
22
5.1. Estructura if
if <condicin>
then
<comandos>
fi
if <condicin>
then
<comandos>
else
<comandos>
fi
if <condicin>
then
<comandos>
elif <condicin>
then
<comandos>
else
<comandos>
fi
23
5.1. Estructura if
if [ foo = foo ]
then
echo Si es cierto
fi
echo Siempre
if [ $1 = hola ]
then
echo Si es verdad
else
echo Si es falsa
fi
echo fin
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
then
echo Es adis
elif [ $1 = Linux ]
then
echo Es Linux
else
echo Es otra cosa
fi
24
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
FALSO
NomVar
Valor
$1
adisor
25
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
adisor
CIERTO
26
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
adisor
27
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
adisor
28
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
adisor
29
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
adisor
30
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
adisor
31
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
FALSO
NomVar
Valor
$1
XDor
:~/script ./pruebaIf XD
32
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
XDor
FALSO
:~/script ./pruebaIf XD
33
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
FALSO
NomVar
Valor
$1
XDor
:~/script ./pruebaIf XD
34
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
XDor
:~/script ./pruebaIf XD
35
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
XDor
:~/script ./pruebaIf XD
Es otra cosa
36
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
XDor
:~/script ./pruebaIf XD
Es otra cosa
37
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
XDor
:~/script ./pruebaIf XD
Es otra cosa
fin
38
5.1. Estructura if
if [ $1 = hola ]
then
echo Es hola
elif [ $1 = adis ]
echo Es adis
elif [ $1 = Linux ]
echo Es Linux
else
echo Es otra cosa
fi
echo fin
NomVar
Valor
$1
XDor
:~/script ./pruebaIf XD
Es otra cosa
fin
39
40
NomVar
Valor
$1
adisor
41
NomVar
Valor
$1
adisor
42
NomVar
Valor
$1
adisor
43
NomVar
Valor
$1
adisor
44
NomVar
Valor
$1
adisor
45
NomVar
Valor
$1
XDor
:~/script ./pruebaCase XD
46
NomVar
Valor
$1
XDor
:~/script ./pruebaCase XD
47
NomVar
Valor
$1
XDor
:~/script ./pruebaCase XD
48
NomVar
Valor
$1
XDor
:~/script ./pruebaCase XD
49
NomVar
Valor
$1
XDor
:~/script ./pruebaCase XD
50
NomVar
Valor
$1
XDor
:~/script ./pruebaCase XD
Es OTRA COSA
51
NomVar
Valor
$1
XDor
:~/script ./pruebaCase XD
Es OTRA COSA
52
5.3. Condiciones
Se utilizan para los apartados que se indicaban
como <condicin> dentro de las sentencias
condicionales
Veremos que son igualmente vlidas para algunas
iterativas
Existen de varios tipos, segn la condicin que
queramos comprobar
53
54
[ $a -eq $b ] Igualdad
[ $a -ne $b ] Desigualdad
[ $a -gt $b ] Mayor que
[ $a -lt $b ] Menor que
[ $a -ge $b ] Mayor o igual que
[ $a -le $b ] Menor o igual que
55
57
5.3.4. Negacin
Se usa el carcter !
[ ! e fichero ]
[ ! f fichero ]
58
0 AND 0 = 0
0 OR 0 = 0
0 AND 1 = 0
0 OR 1 = 1
1 AND 0 = 0
1 OR 0 = 1
1 AND 1 = 1
1 OR 1 = 1
59
60
NomVar
Valor
read DATO
echo $DATO
:~/script ./pruebaDatos
62
NomVar
Valor
read DATO
echo $DATO
:~/script ./pruebaDatos
Introduzca un dato
63
NomVar
Valor
read DATO
echo $DATO
:~/script ./pruebaDatos
Introduzca un dato
64
NomVar
Valor
DATO
XXDor
echo $DATO
:~/script ./pruebaDatos
Introduzca un dato
XXD
65
NomVar
Valor
DATO
XXDor
echo $DATO
:~/script ./pruebaDatos
Introduzca un dato
XXD
XXD
66
NomVar
Valor
DATO
XXDor
echo $DATO
:~/script ./pruebaDatos
Introduzca un dato
XXD
XXD
:~/script
67
68
69
70
NomVar
Valor
echo Fichero: $i
done
echo Fin
:~/script ls
fich1 fich2 fich3
:~/script ./for1
71
NomVar
Valor
fich1or
echo Fichero: $i
done
echo Fin
:~/script ls
fich1 fich2 fich3
:~/script ./for1
72
NomVar
Valor
fich1or
echo Fichero: $i
done
echo Fin
:~/script ls
fich1 fich2 fich3
:~/script ./for1
Fichero: fich1
73
NomVar
Valor
fich2or
echo Fichero: $i
done
echo Fin
:~/script ls
fich1 fich2 fich3
:~/script ./for1
Fichero: fich1
74
NomVar
Valor
fich2or
echo Fichero: $i
done
echo Fin
:~/script ls
fich1 fich2 fich3
:~/script ./for1
Fichero: fich1
Fichero: fich2
75
NomVar
Valor
fich3or
echo Fichero: $i
done
echo Fin
:~/script ls
fich1 fich2 fich3
:~/script ./for1
Fichero: fich1
Fichero: fich2
76
NomVar
Valor
fich3or
echo Fichero: $i
done
echo Fin
:~/script ls
fich1 fich2 fich3
:~/script ./for1
Fichero: fich1
Fichero: fich2
Fichero: fich3
77
NomVar
Valor
fich3or
echo Fichero: $i
done
echo Fin
:~/script ls
fich1 fich2 fich3
:~/script ./for1
Fichero: fich1
Fichero: fich2
Fichero: fich3
78
NomVar
Valor
fich3or
echo Fichero: $i
done
echo Fin
:~/script ls
fich1 fich2 fich3
:~/script ./for1
Fichero: fich1
Fichero: fich2
Fichero: fich3
Fin
79
80
NomVar
Valor
echo Valor: $i
done
:~/script ./for2
echo Fin
81
NomVar
Valor
1or
echo Valor: $i
done
:~/script ./for2
echo Fin
82
NomVar
Valor
1or
echo Valor: $i
done
echo Fin
:~/script ./for2
Valor: 1
83
NomVar
Valor
2or
echo Valor: $i
done
echo Fin
:~/script ./for2
Valor: 1
84
NomVar
Valor
2or
echo Valor: $i
done
echo Fin
:~/script ./for2
Valor: 1
Valor: 2
85
NomVar
Valor
3or
echo Valor: $i
done
echo Fin
:~/script ./for2
Valor: 1
Valor: 2
86
NomVar
Valor
3or
echo Valor: $i
done
echo Fin
:~/script ./for2
Valor: 1
Valor: 2
Valor: 3
87
NomVar
Valor
4r
echo Valor: $i
done
echo Fin
:~/script ./for2
Valor: 1
Valor: 2
Valor: 3
88
NomVar
Valor
4r
echo Valor: $i
done
echo Fin
:~/script ./for2
Valor: 1
Valor: 2
Valor: 3
Valor: 4
89
NomVar
Valor
5r
echo Valor: $i
done
echo Fin
:~/script ./for2
Valor: 1
Valor: 2
Valor: 3
Valor: 4
90
NomVar
Valor
5r
echo Valor: $i
done
echo Fin
:~/script ./for2
Valor: 1
Valor: 2
Valor: 3
Valor: 4
Valor: 5
91
NomVar
Valor
5r
echo Valor: $i
done
echo Fin
:~/script ./for2
Valor: 1
Valor: 2
Valor: 3
Valor: 4
Valor: 5
92
NomVar
Valor
5r
echo Valor: $i
done
echo Fin
:~/script ./for2
Valor: 1
Valor: 2
Valor: 3
Valor: 4
Valor: 5
Fin
93
while <condicin>
do
<comandos>
done
94
NomVar
Valor
:~/script ./pruwhile
done
echo Fin
95
NomVar
Valor
0or
:~/script ./pruwhile
done
echo Fin
96
NomVar
Valor
0or
Se cumple
:~/script ./pruwhile
done
echo Fin
97
NomVar
Valor
0or
:~/script ./pruwhile
Valor: 0
done
echo Fin
98
NomVar
Valor
1or
:~/script ./pruwhile
Valor: 0
done
echo Fin
99
NomVar
Valor
1or
Se cumple
:~/script ./pruwhile
Valor: 0
done
echo Fin
100
NomVar
Valor
1or
:~/script ./pruwhile
Valor: 0
Valor: 1
done
echo Fin
101
NomVar
Valor
2or
:~/script ./pruwhile
Valor: 0
Valor: 1
done
echo Fin
102
tras 7 iteraciones
103
NomVar
Valor
9or
:~/script ./pruwhile
Valor: 0
Valor: 1
Valor: 9
echo Fin
104
NomVar
Valor
10or
:~/script ./pruwhile
Valor: 0
Valor: 1
Valor: 9
echo Fin
105
NomVar
Valor
10or
No se cumple
:~/script ./pruwhile
Valor: 0
Valor: 1
Valor: 9
echo Fin
106
NomVar
Valor
10or
:~/script ./pruwhile
Valor: 0
Valor: 1
Valor: 9
Fin
107
NomVar
Valor
10or
:~/script ./pruwhile
Valor: 0
Valor: 1
Valor: 9
Fin
108
109
111
9. Funciones
112
9. Funciones
Es un elemento que no es totalmente
imprescindible para escribir un script, pero facilita
mucho la labor
Permite dividir en mdulos la tarea a ejecutar
La funcin se caracteriza por su nombre
Puede tener argumentos de entrada cuyo valor se
determina en la llamada a la funcin
Veamos la estructura y ejemplos de uso de una
funcin
113
9. Funciones
#Declaramos la funcin, indicando que hace
function <nombre>
{
<comandos>
}
#El lugar desde el que se invoca a la funcin
<nombre> arg1 arg2 argN
* Nota: Los argumentos simplemente se colocan separados por un espacio, utilizndolos
en la funcin con $1, $2, etc
114
9. Funciones
function hola {
echo Hola
}
function salir {
echo Salir
}
NomVar
Valor
:~/script ./prufun1
#Invocacin
hola
salir
115
9. Funciones
function hola {
echo Hola
}
function salir {
echo Salir
}
NomVar
Valor
:~/script ./prufun1
#Invocacin
hola
salir
116
9. Funciones
function hola {
echo Hola
}
function salir {
echo Salir
}
NomVar
Valor
:~/script ./prufun1
#Invocacin
hola
salir
117
9. Funciones
function hola {
echo Hola
}
function salir {
echo Salir
}
NomVar
Valor
:~/script ./prufun1
Hola
#Invocacin
hola
salir
118
9. Funciones
function hola {
echo Hola
}
function salir {
echo Salir
}
NomVar
Valor
:~/script ./prufun1
Hola
#Invocacin
hola
salir
119
9. Funciones
function hola {
echo Hola
}
function salir {
echo Salir
}
NomVar
Valor
:~/script ./prufun1
Hola
#Invocacin
hola
salir
120
9. Funciones
function hola {
echo Hola
}
function salir {
echo Salir
}
NomVar
Valor
:~/script ./prufun1
Hola
Salir
#Invocacin
hola
salir
121
9. Funciones
function hola {
echo Hola
}
function salir {
echo Salir
}
#Invocacin
hola
salir
NomVar
Valor
:~/script ./prufun1
Hola
Salir
:~/script
122
9. Funciones
function imprimir {
echo $1
}
imprimir Hola
NomVar
Valor
:~/script ./prufun2
123
9. Funciones
function imprimir {
echo $1
}
imprimir Hola
NomVar
Valor
:~/script ./prufun2
124
9. Funciones
function imprimir {
echo $1
}
imprimir Hola
NomVar
Valor
$1
Holaor
:~/script ./prufun2
125
9. Funciones
function imprimir {
echo $1
}
imprimir Hola
NomVar
Valor
$1
Holaor
:~/script ./prufun2
Hola
126
9. Funciones
function imprimir {
echo $1
}
imprimir Hola
NomVar
Valor
$1
Holaor
:~/script ./prufun2
Hola
:~/script
127