Ho modificato la parte if perchè mi dava un problema, [[: not found, e andando a leggere ho visto che bisognava cambiare come ho fatto
@eugenia non dovresti avere quell'errore eseguendo il tuo script in una shell bash come dicevi nel primo post; forse il tuo script viene eseguito da cron, udev o altri demoni che hanno come shell predefinita sh?
Non è indispensabile ma per sfruttare qualcuna delle funzionalità avanzate presenti in bash ma non in sh, puoi mettere nel primo rigo dello script la sequenza di caratteri
#! /bin/bash
che istruisce il sistema operativo ad eseguire il codice successivo con l'interprete bash. Questo, ammesso che lo script abbia già i permessi di esecuzione.
Insisto su questo punto perché penso che sia causa del malfunzionamento: se usi bash e per il test usi
[[ allora puoi testare l'uguaglianza con
== altrimenti dentro il test fatto con
[ devi testare l'uguaglianza tra stringhe con
=
Sul fatto che il continue non serve ha ovviamente ragione
@thece : il ciclo si ripeterà comunque, basta occuparsi di farlo uscire col break quando serve.
Non sono d'accordo invece sulla inutilità di verificare la variabile test all'uscita del loop, altrimenti bisognerebbe eseguire il blocco `step_successivo' _dentro_ il loop, subito prima del break.
Concordo ancora sul fatto che usare sudo dentro lo script sia _sbagliato_, che è essenziale una corretta indentazione e formattazione del codice, che è molto utile una appropriata denominazione delle variabili...
Faccio una puntualizzazione utile a una che vuole avanzare nell'uso della shell: quando scrivi
potresti risparmiare l'esecuzione di un processo scrivendo direttamente