|
Desenvolupament de Funcions pels Sistemes
Informàtics
|
ASI-2
|
GNU/Linux
|
Ordre
if (2a part). Ordre select. Funcions dins d'arxius de
guió. Ordre let
|
29/01/09
|
Ordre
if (2a part). Ordre select. Funcions dins d'arxius de guió.
Ordre let.
DOCUMENTACIÓ
1.- [ ] i [[ ]]: Pàgines 51 a 54 i
pàgina 56 del
document Advanced Bash-Scripting Guide.
2.- elif:
Pàgines 54 i 55 del document Advanced Bash-Scripting
Guide.
3.- (( )):
Pàgina 51, 57 i 58 del document Advanced Bash-Scripting Guide.
4.-
Ordre if i operadors de comprovació i
comparació de
fitxers i directoris: Pàgines 58 a 60 del document Advanced
Bash-Scripting Guide.
5.- Ordre if i operadors de
comparació
de números sencers: Pàgines 61 i 62 del document
Advanced
Bash-Scripting Guide.
6.- Ordre if i operadors de
comparació
de cadenes de caràcters: Pàgines 62 i 63 del
document
Advanced Bash-Scripting Guide.
7.- Ordre if i operadors de
composició de comparació (-o i -a):
Pàgina
66 i 67 del document Advanced Bash-Scripting Guide.
8.- Ordre
select: Pàgines 157 i 158 del document Advanced
Bash-Scripting Guide.
9.- Definició de funcions:
Pàgines 387 a 390 del document Advanced Bash-Scripting Guide.
10.-
Pas de pàrametres a funcions: Pàgines 391 i 392
del document Advanced Bash-Scripting Guide.
11.- Variables
locals: Pàgina 401 i 402 del document Advanced Bash-Scripting
Guide.
12.- Ordre let: Pàgines 187 i 189 del
document Advanced Bash-Scripting Guide
13.- if amb ordres de linux --> if sense test. Pàgina 52
EXEMPLES
PRÀCTICA
1- Fes un script que
permeti utilitzar if, elif i l'ordre if amb ordres que començant
des de la interfície de xarxa eth0, i fins a la 3, intenti
activar la interfície eth0, i si no existeix la interfície
eth1,
si no existeix la interfície
eth2 i si no existeix la eth3. Quan trobi una funcionant, el programa
finalitzarà mostrant per pantalla "Interfçie ethX
activada" on X representa el número de la interfície
activada. Si no en troba cap, el programa finalitzarà amb el
missatge "No s'ha trobat cap interfície vàlida".
2.-
Fes un script que mostri per pantalla el número de fitxers
de
mida diferent a 0 bytes que es troben en un directori el nom del qual
donarà l'usuari durant l'execució del programa.
El nom
del directori es passarà com a paràmetre a una
funció. La variable que comptarà els fitxers que
cumpleixen les condicions ha de ser local a la funció. El
nom de
la funció sera compte_fitxers(). El script
s'anomenarà
p4s2.sh.
3- Fes
l'apartat 3 de la pràctica 1 utilitzant select i let.
El
script s'anomenarà p4s3.sh.
4.-
Fes un script que per pantalla faci sortir un menú,
utilitzant
select, de manera que puguem veure diversos paràmetres de
configuració del sistema. Els paràmetres
es troben dins de variables definifides a arxius dins del directori
/etc/sysconfig. Utilitza l'ordre grep per ajudar-te. Els
paràmetres que haurien de poder escollir per veure el seu
valor
son: a) Llengüa del sitema, b) El gestor de finestres per
defecte,
c) El programa gestor d'arrancada del sistema, d) El mapa del
teclat, e) El display manager per defecte. f) L'adreça IP
per
defecte de la interficie eth, g) L'adreça IP per defecte del
router i h) El nivell d'execució del sistema per defecte.
L'opció escollida s'ha de passar com a paràmetre
a una única funció que serà la que
trobarà
el resultat i el mostrarà per pantalla, i que
s'anomenarà visualitza_conf().
El script s'anomenarà p4s4.sh.
NOTA1: Descarrega ubuntu.txt
amb informació per fer la pràctica des de la
distribució Ubuntu de GNU/Linux.
5- Un any de traspàs és aquell en el qual el mes de
febrer té un dia més. Un any és de traspàs
si es divisible per 4. Si l'any és divisible per 100 no
és de traspàs. Si un any és divisible per 100 i
per 400 llavors és un any de traspàs (1900 no va ser any
de traspàs però si que ho va ser l'any 2000). Fes un
script utilitzant elif i l'ordre let. Mostra el resultat.
L'any s'ha de passar com a paràmetre. En cas de passar un
número diferent a 1 de paràmetres,o passar un valor no
numèric, el programa enviarà a la pantalla el missatge
"Nombre o tipus de paràmetre incorrecte". La comprovació
dels errors s'ha de fer dins d'una funció de nom gestio_error().
El
script s'anomenarà p4s5.sh.
NOTA: %
serveix per fer trobar el residu de la divisió de 2
nombres.
NOTA 2: grep -v -q '[[:alpha:]]' serveix per saber si una variable
té un o més caràcters no númerics.
6-
Fes un script per comprovar si la localització (el directori)
d'un script esta dins del PATH, si és executable i si té
una mida més gran que 0. Per això caldrà
saber el seu nom, que has de passar com a paràmetre. Utilitza la
comprovació de fitxers amb l'ordre if. La
comprovació s'ha de fer amb una funció de nom comprova().
Si el fitxer es troba dins del PATH, té permisos
d'execució i té una mida més gran que 0, el scrit
retornarà el missatge "Fitxer executable". En cas contrari
retornarà el missatge "Fitxer no executable". En
cas de passar
un número diferent a 1 de paràmetres el
programa enviarà a la pantalla el missatge "Nombre de
paràmetre
incorrecte". La comprovació dels errors s'ha de fer dins d'una
funció
de nom gestio_error(). El
script s'anomenarà p4s6.sh.
NOTA 1: IFS
és una variable interna del bash a on es desa el caracter
separador de llistes.
NOTA 2: El caràcter separador de la variable PATH és :
7- Fes un script del bash shell que permeti a l'usuari escollir
entre executar 3 funcions que fan la mateixa tasca que els scripts 2,5
i 6. Els noms de les funcions seran scr2(), scr5() i scr6().
Recorda que aquests scripts treballen amb paràmetres, de manera
que el programa haurà de demanar a l'usuari el valor que volem
passar a les funcions en temps d'execució. La part de demanar
dades serà una altra funció de nom menu(). Dins de la
funció menu() utilitza únicament variables locals. El
script s'anomenarà p4s7.sh.
8- Fes un script del bash shell que comprovi si el programa test.sh es
troba dins del PATH teu ordinador, és executable, ets el seu
propietari i té una mida més gran que 0
bytes. En cas de que es cunpleixin totes les condicions, fes que
s'executi el programa. En cas contrari, el descarregueres de
http://www.collados.org/asi2/dfsi/linux/p4/test.sh
amb l'ordre wget, i el
deixaràs dins del directori ~/bin, amb permisos
d'execució, i l'executaràs. En principi, el directori bin
ha d'existir. Si no existeix, l'has de crear.El
script s'anomenarà p4s8.sh.
9-
S'han de lliurar els arxius de guió comprimits dins d'un arxiu
de nom asi2
_dfsi_nom_cognom_p4bash.tar.gz
que s'han d'enviar
a cf(arrova)collados.org. A
l'assumpte del correu heu de posar asi2
_dfsi_nom_cognom_p4bash.
L'últim dia per lliurar el treball
és el 15-3-2009 a les 14 Hores. Posaré les solucions a
les 14H30. No recolliré cap pràctica després
d'aquest dia i hora.
.