Nome: If

Locazione: interno

Template : NOT/S,WARN/S,ERROR/S,FAIL/S,,EQ/K,GT/K,GE/K,VAL/S,EXISTS/K

IF può essere usato solo negli script. Permette di creare una
diramazione nell'esecuzione dello script che verrà eseguita solo se la
condizione impostata nella linea di comando di IF risulta soddisfatta.
La diramazione si conclude quando nello script appare un comando ENDIF.
La diramazione può essere divisa in due parti da un comando
ELSE: in tal caso la parte di diramazione che inizia con
ELSE verrà eseguita se la condizione posta da IF non viene
soddisfatta. Le diramazioni possono essere annidate: ciò significa
che una sezione di codice delimitata da IF...ENDIF può contenere una o
più diramazioni IF...ENDIF.

Le condizioni che IF accetta sono di tre tipi. Il tipo più usato è
costituito dai livelli di errore. Ogni comando AmigaDOS restituisce,
al termine dell'esecuzione, un livello di errore. Tale valore si
ritrova, fra l'altro, nella variabile locale RC. IF è in grado di
testare il livello di errore restituito dall'ultimo comando eseguito,
mediante i parametri WARN (5), ERROR (10) e FAIL (20). Per esempio se
si usa IF WARN, la condizione verrà soddisfatta se il comando
precedente ha restituito un livello di errore uguale o maggiore di 5.
Si noti che per poter controllare ERROR e FAIL è necessario aumentare
preventivamente il livello di errore massimo consentito dallo script
mediante il comando FAILAT. Se si indica sulla linea di
comando più di una condizione, varrà la maggiore e cioè, nell'ordine,
FAIL, ERROR e WARN.

I parametri EQ (uguale), GT (maggiore), GE (maggiore o uguale)
permettono invece di confrontare il valore di due stringhe: in questo
caso si dovranno indicare due stringhe sulla linea di comando,
separate da uno dei parametri indicati, ed eventualmente racchiuse tra
virgolette nel caso comprendano degli spazi; il confronto non tiene
conto di minuscole o maiuscole; maggiore significa che la prima
stringa segue la seconda nell'ordine alfabetico. L'aggiunta del
parametro VAL permette di considerare le stringhe come valori
numerici: in tal caso le stringhe devono esprimere dei valori
decimali interi.

EXISTS permette infine di controllare se un determinato file esiste.

Si noti che IF consente l'uso di variabili AmigaDOS nei confronti.

 NOT/S: inverte il significato di una determinata condizione.

 WARN/S: il livello di errore dell'ultimo comando eseguito è maggiore
o uguale a 5.

 ERROR/S: il livello di errore dell'ultimo comando eseguito è
maggiore o uguale a 10.

 FAIL/S: il livello di errore dell'ultimo comando eseguito è maggiore
o uguale a 20.

 EQ/K: I due elementi a confronto devono essere uguali.

 GT/K: Il primo elemento deve essere maggiore del secondo.

 GE/K: Il primo elemento deve essere maggiore o uguale al secondo.

 VAL/S: I due elementi del confronto devono essere trattati come
valori numerici decimali interi.

 EXISTS/K: il file indicato deve esistere.

Script d'esempio:

 IF WARN
 ECHO "Il livello di errore è maggiore o uguale a 5"
 ENDIF

 IF NOT ERROR
 ECHO "Il livello di errore è minore di 10"
 ENDIF

 IF NOT EXISTS K:2
 ECHO "Non esiste il file K:2"
 ENDIF

 SET prova 123

 IF $prova GT 22
 ECHO $prova "è maggiore di 22" 
 ELSE
 ECHO "La stringa" $prova "è minore di 22" 
 ENDIF

 IF VAL $prova GT 22
 ECHO "Il numero" $prova "è maggiore di 22" 
 ENDIF