Ieri pensavo di avere superato per il mio script tutte le difficoltà possibili. Invece non è così.
Oggi sono caduto in una istruzione if di confronto fra due numeri. Il gruppo di istruzioni interessato è
while "$striuuid":${ind1}:5!="UUID=" ]; do
((++ind1))
echo "ind1= "${ind1}
{
if ${ind1} > 25 ]]; then
read Scelta
fi
}
done
Devo trovare all’interno della stringa “$striuuid” la frase “UUID=”. Per farlo ho pensato di usare il metodo “fai da te” cercando in “$striuuid” la frase “UUID=”, partendo dal 1° carattere di sinistra della stringa e per 5 caratteri, spostando in avanti di 1 carattere l’indice di puntamento iniziale sulla stringa ad ogni ciclo while terminato per “non trovato”.
A causa di un loop imprevisto, ho aggiunto, in prova, un’istruzione if con la quale vorrei controllare l’evoluzione del ciclo passo dopo passo a partire dal 26° passaggio. Ebbene non ci riesco perchè l’istruzione if termina con ${ind1} > 25 già quando ind1 contiene il valore 3
Ho cercato di trovare suggerimenti e soluzioni. Ho anche inserito una
declare -i ind1=0
nel tentativo di produrre un effetto di confronto di tipo numerico, ma invano. L’istruzione non funziona ed ottengo sempre lo stesso abominevole errore con ind1=3 > 25.
Ma perchè?