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