IMC!


Contenuti


Foto

 







Curiosando...
Novita  Novità Link  Link Blog  Blog English  Español 
04 - Struttura condizionale if nella bash

 | 

L'istruzine condizionale fondamentale if..then..elif..else..fi è leggermente diversa dalla notazione standard del C. La sua struttura è:

if [condizione1]; then
  codice1
elif [condizione2]; then
  codice2
else
  codice3
fi

Il significato dei vari comandi è il seguente:
  • if: esegue codice1 se la [condizione1] è vera.
  • then: indica dove inizia il codice da eseguire in base alla condizione.
  • elif: equivalente a else if in C. Esegue codice2 se [condizione2] è vera, ma [condizione1] non è vera. Conclude anche la porzione di codice eseguita dal precedente if / elif.
  • else: esegue codice3 se nessuna delle precedenti condizioni è vera.
  • fi: chiude il blocco condizionale.
Il seguente script verifica che un file esista:

#!/bin/bash
if [ -f topolino.c ];
then
  cat topolino.c
else
  echo "Il file non esiste"
fi

Controlli sui file
Le condizioni sono sempre scritte all'interno di parentesi quadre. Da notare che la parentesi di apertura deve essere sempre seguita da uno spazio, e quella di chiusura preceduta da uno spazio. Esistono una serie di indicatori che permettono di verificare condizioni sui file, secondo la sintassi:

[ controllo /etc/file_da_controllare]

Tali controlli sono:

ControlloSignificato
-d:Verifica che il file sia una directory
-e:Verifica che il file esista
-f:Verifica che il file sia regolare
-g:Ccontrolla se il bit SGID è impostato
-r:Verifica che il file abbia i permessi di
lettura per l'utente che esegue lo script
-s:Verifica che la dimensione del file non sia 0
-u:Verifica se il bit SUID è impostato
-w:Verifica che il file sia scrivibile

 | 







Inserire la password di amministratore:



Password:

Riga:



Commenti

1 - Giacobbe85   SitoMer 27 Lug 2011 - 18:37:14  

Ciao! Interessante... Purtroppo in settimana non ho molto tempo libero. Nel week end gli darò sicuramente un'occhiata. Oppure se trovi la soluzione prima facci sapere la tua scoperta! :-)


2 - AnonimoMer 27 Lug 2011 - 14:50:51  

Ciao Giacobbe, come posso convertire il seguente ciclo for del mio .bat in .sh....potressi aiutarmi...Grazie mille jo
1) for /F "eol=#" %%i in (%wade-cfg%/boot.properties) do (
set %%i
)

2)for %%F in (%lib%/*.jar) do (
set class-path=!class-path!%lib%/%%~nxF;
)

3)for /f "tokens=*" %%G in ('dir /b /A:D') DO (
if exist %addons%/%%G/cfg set class-path=!class-path!%addons%/%%G/cfg;
)

ti ringrazio in anticipo


Scrivi un commento

Pui scrivere quì sotto un commento all'articolo che hai appena letto. Non sono abilitate smile, immagini e link. La lunghezza massima del commento è 4000 caratteri. La buona educazione è benvenuta, tutti i commenti offensivi saranno cancellati.

Your comment (lascia bianco!):
Utente (max 25 caratteri, obbligatorio)
Sito web (max 255 caratteri, facoltativo)
e-Mail (max 255 caratteri, facoltativa, non sarà pubblicata) Your opinion (lascia bianco!):
Commento (max 4000 caratteri, obbligatorio):





Valid HTML 4.01 Transitional
E-Mail - 99.09 ms

Valid HTML 4.01 Transitional