Ultimamente mi sono messo a curiosare sul mondo dello scripting Bash, e mi sono accorto che uno dei punti che più confonde chi inizia riguarda le condizioni: in altre parole, come dire al computer “se succede questo, fai quello”. In Bash ci sono diversi modi per farlo: test, [ ... ] e [[ ... ]]. All’inizio sembrano tutti uguali, ma in realtà ci sono alcune differenze importanti.
test è il metodo più “vecchio” e funziona praticamente ovunque. Serve a confrontare numeri, parole o verificare se un file esiste, e restituisce un “vero” o “falso” che lo script può usare per decidere cosa fare. La cosa importante è fare attenzione agli spazi e alla sintassi, altrimenti lo script si confonde facilmente.
Le parentesi quadre [ ... ] sono praticamente un altro modo per scrivere test. Molti script le usano perché sono più leggibili, ma le regole sono le stesse: serve attenzione a spazi e caratteri speciali.
La doppia parentesi quadra [[ ... ]] è invece la versione moderna e più comoda di Bash. Permette di fare confronti più avanzati, gestire meglio le variabili e riduce il rischio di errori. È il metodo che consiglio se volete scrivere script chiari, sicuri e facili da leggere, soprattutto quando si gestiscono input che non controlliamo completamente.
Nella sicurezza informatica, capire queste differenze è utile: anche un piccolo errore in uno script può causare problemi imprevisti o creare vulnerabilità. Usare la sintassi giusta aiuta a scrivere codice più affidabile.
Di recente ho trovato un video molto interessante che spiega tutto questo in maniera chiara e divertente, con esempi pratici. Se volete approfondire, vi lascio il link qui: [test vs [ vs [: Bash Conditionals Explained!
Commenti
Posta un commento