|
Desenvolupament de Funcions pels Sistemes
Informàtics
|
ASI-2
|
GNU/Linux
|
Scripts del bash shell de Linux (II)
|
10/01/11
|
Scripts dels bash shell de Linux (II).
DOCUMENTACIÓ
0.- [ ] i [[ ]]: Pàgines 51 a 54 i
pàgina 56 del
document Advanced Bash-Scripting Guide.
1.- Taula amb les principals diferències entre [ ] i [[ ]] http://mywiki.wooledge.org/BashFAQ/031
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 amb le if i elif de manera que intenti
comprovar si existeix la interfície eth0, i si existeix,
llavors l'activarà. Si no existeix eth0, comprovarà si
existeix eth1,
i si existeix, llavors l'activarà.
Si no existeix
eth1, comprovarà si
existeix
wlan0,
i
si
existeix,
llavors
l'activarà.
Si no existeix
wlan0, comprovarà si
existeix
wlan1,
i
si
existeix,
llavors
l'activarà. En el moments que activi una
interfície, llavors el
programa
finalitzarà
mostrant
per
pantalla
"Interfície
XXX
activada" on XXX representa la interfície
activada (nom i número).
Si no troba cap
interfície, el programa finalitzarà amb el
missatge "No s'ha trobat cap interfície vàlida".
El script
s'anomenarà
p4s1.sh.
2.-
Fes un script que mostri per pantalla el número de fitxers
amb permisos de lectura (per l'usuari que l'executa) i de mida diferent
a zero que es troben en un directori el qual
s'haurà d'escollir de manera gràfica.
El nom
del directori es passarà com a paràmetre a una
funció que serà l'encarregada de comptar el número
de fitxers. La variable a on es desarà el número de
fitxers que
cumpleixen les condicions ha de ser local a la funció. El
nom de
la funció sera compte_fitxers(). El resultat s'ha de mostrar de
la següent manera:
El script
s'anomenarà
p4s2.sh.
3.-
Fes
un
script
que
per
pantalla
faci
sortir
un
menú,
utilitzant
select, de manera que puguem veure diversos paràmetres de
configuració del sistema. 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) L'entrada per defecte del
menú GRUB, c) El mapa del
teclat, d) El display manager per defecte i e) L'adreça MAC de
la interfície eth0.
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à p4s3.sh.
NOTA1: Descarrega ubuntu.txt
amb informació per fer la pràctica des de la
distribució Ubuntu de GNU/Linux.
4- 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à
p4s4.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.
5-
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à
p4s5.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 :
6- Fes un script del bash shell que permeti a l'usuari escollir
entre executar 3 funcions que fan la mateixa tasca que els scripts 3,4
i 5. Els noms de les funcions seran scr3(), scr4() i scr5().
Recorda que aquests scripts 4 i 5 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ó. Has de crear una
funció de nom menu() per demanar quina funció vols
executar, i en el cas que sigui una funció que requereix un
paràmetre, l'hauràs de demanar
a continuació. Dins de la
funció menu() utilitza únicament variables locals. El
script
s'anomenarà
p4s6.sh.
7- Fes un script del bash shell que comprovi si el programa prova.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/linux/p4/prova.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à
p4s7.sh.
S'han
de
lliurar
els
arxius
de
guió comprimits dins d'un arxiu
de nom asi2
_dfsi_nom_cognom_p4_linux.tar.gz
que s'han d'enviar
a cf(arrova)collados.org. A
l'assumpte del correu heu de posar asi2
_dfsi_nom_cognom_p4_linux.
L'últim dia per lliurar el treball
és el 31-1-2011.