LeoBenelli
|
PARAMETRI |
|
Variabili |
Descrizione contenuto |
$0 |
Nome dello script |
$1,$2,... |
Primo, Secondo parametro, |
$* |
Tutti i parametri in un'unica stringa divisi dal primo
carattere di IFS. |
$@ |
Tutti i parametri divisi invece in diverse stringe ognuna
divisa da doppie virgolette e separate da spazi. |
COMANDI |
|||
Comando |
Descrizione |
||
for...done |
for
nome [in lista] for xfile in * |
[Lista] non necessariamente deve essere riferito a files, ma puo' essere anche una
lista di valori divisi da un carattere, per identificare tale carattere si
usa la variabile di ambiente IFS. Se [in lista] non e' specificato
prende di default $@ che corrisponde alla lista di
parametri passati allo script. |
|
if.[elif]..fi |
if [condizione] ; then if [ -f $xfile ]; then |
||
case |
Case [Espressione] in for xfile in * |
||
while...done |
while
[condizione] until
[condizione] |
Con While si rimane nel ciclo
fino a quando la condizione e' vera.. Con Until fino a quando e' falsa
|
|
select
do...done |
Permette di visualizzare un menu di selezione : select
nome [in lista] select xfile in * |
Se [in lista] non e' specificato
prende di default $@ che corrisponde alla lista di
parametri passati allo script. Con select propone un opzione con un codice progressivo per ogni elemento
della lista passata e permette a l'utente di selezionare il codice desiderato
una volta scelto, [nome] avra' il contenuto
dell'opzione mentre la variabile di ambiente REPLY il codice assegnato. Per uscire dal loop e' possibile
usare il comando break. |
|
test |
int1 -eq
int2 |
= |
Confronto tra Interi |
int1 -ge
int2 |
>= |
||
int1 -gt
int2 |
> |
||
int1 -le int2 |
<= |
||
int1 -lt
int2 |
< |
||
int1 -ne int2 |
<> |
||
str1 = str2 |
True se = |
Confronto tra stringhe |
|
str1 != str2 |
True se <> |
||
str |
True se non nullo |
||
-n str |
True se length
> 0 |
||
-z str |
True se length
= 0 |
||
-d <nome> |
Se <nome> e' una Directory |
Verifica condizioni filesystem |
|
-f <nome> |
Se <nome> e' un normale file |
||
-r <nome> |
Se <nome> puo' essere letto dal processo |
||
-s <nome> |
Se lunghezza di <nome> e' <>
0 |
||
-u <nome> |
Se <nome> esiste e se ha il
setuid impostato. |
||
-w <nome> |
Se <nome> puo' essere scritto dal processo |
||
-x <nome> |
Se <nome> e' un eseguibile |
||
! <Espr> |
Operatore Not |
Operatori logici |
|
<Espr1> -a <Espr2> |
Operatore And |
||
<Espr1> -o <Espr2> |
Operatore Or |
FUNZIONI |
|
Funzioni |
Descrizione Contenuto |
#!/bin/bash if [ 12
-gt 2 -a 12 -eq 2 ]; then |
Per usare le funzioni va indicato il nome con () e le
istruzioni della funzione vanno indicate tra una coppia di parentesi graffe. Per usare la funzione indicare il nome seguito da [] per
indicare i parametri [par1,par2 ...]. ATTENZIONE AGLI SPAZI. |
COSTRUZIONE FLOPPY BOOT/ROOT (non terminato) |
|
Comando |
Descrizione |
mkdir /root/distribuzione |
Crea directory di appoggio |
dd if=/dev/zero of=/root/distribuzione/initrd bs=1k count=3000 |
Crea file vuoto "initrd" che conterra' ò'immagine del filesystem. |
mke2fs -m 0 -i 2000 initrd |
implementa il file system ext2 su
initrd con 0 byte riservati per superuser
e 2000 per inode |
mkdir /root/distribuzione/mount |
Crea una directory e la usa come mount
point per il file di immagine
|
mkdir /root/distribuzione/mount/dev |
Crea e imposta la directory DEV. I parametri di cp -dpR stanno per : |
mkdir /root/distribuzione/mount/lib cp -dpR /lib/libtermcap.so.*
/root/distribuzione/mount/lib (solo se si ha la necessita'
di usare programmi tipo "more") |
Crea e imposta la directory LIB. |
mkdir /root/distribuzione/mount/etc |
Crea e imposta la directory ETC. Le scritte in rosso indicano cio'
che andra' scritto nel file aperto con l'editor
"vi" o qualcunque altro editor. ldconfig
provvede a creare il file ld.so.cache nella
directory etc in base alle librerie contenute nella
produzione. Quindi dopo aver lanciato il comando
controllare se esiste il file in etc. ( potrebbe dare dei warning
) |
mkdir /root/distribuzione/mount/bin |
Crea e imposta la directory BIN e /USR/BIN. l'editor copiato e' "pico", "vi" ha il doppio di dimensione. |
mkdir /root/distribuzione/mount/sbin mkdir /root/distribuzione/mount/proc |
Crea e imposta la directory SBIN e crea le directory mancanti |
vi /root/distribuzione/mount/etc/rc
: |
Crea script di partenza. |
mkdir /root/distribuzione/mount/boot timeout=100 message=/boot/message prompt image=/boot/<nome
root=/dev/fd0 |
|
umount initrd |
|
................................................... |
|
|
|