Cosa succede quando premi invio
expansion Comando echo echo ciao a tutti Mostra in output la stringa ciao a tutti echo * * è rimpiazzato da tutti i file e le directory di pwd. Questa operazione lo fa la shell prima di dare in pasto il risultato a echo
Espansione aritmetica Se poniamo intorno a un espressione che passiamo ad echo due parentesi tonde con il dollaro davanti, questa viene interpretata come espressione aritmetica e viene eseguito pertanto il calcolo indicato Esempio echo $((expression)) Possiamo eseguire le 4 operazioni (+,-,*,/), ma anche l'operazione modulo (%) e di elevamento a potenza (**) Possiamo pertanto inserire un espressione aritmetica in mezzo a del testo echo due più due fa $((2+2))
Brace Expansion Funzionalità potentissima Esempio echo prova{1,2,3}prova Restituisce prova1prova Prova2prova Prova3prova oltre a separare gli elementi con la virgola possiamo specificare il limite inferiore e il limite superiore in questo modo echo prova{1..10}prova Possiamo fare espressioni più complesse
Brace Expansion Task interessante. Creare varie directory per organizzare i nostri file per anno e per mese. Vogliamo tante cartelle per anno e per mese. Mkdir {2005-2007}-{01..12} COMANDO COMPATTO MA POTENTISSIMO!!!
Espansione dei comandi Possiamo inserire il risultato di un comando all'interno di una espressione in questo modo echo risultato di SL è $(SL)
Quoting echo ciao a tutti ciao a tutti Perché non ciao a tutti Poiché echo considera gli spazi come argomenti diversi del comando echo, ovvero li interpreta come diverse stringhe, non come un'unica stringa
Quoting doppio Se inseriamo il testo all'interno delle doppie virgolette “” tutti i caratteri speciali della shell (es. *) sono considerati come caratteri ordinari. Fanno eccezione “$”, “\” (backslash), and “`” (back-quote). Non funziona più pertanto Word-splitting brace expansion ma continuano a funzionare arithmetic expansion E commandsubstitution
Esempio del double quoting Vogliamo aprire un file con nome file “telefono casa” Cat telefono casa La shell spezza i due argomenti e pensa di aprire telefono e poi casa, ma usiamo il double quoting per indicare che vogliamo proprio telefono casa Cat “telefono casa” In questo modo apriamo proprio il file desiderato
Single quote Se non vogliamo che funzioni più nessuna delle tipologie di expansion che abbiamo visto prima
Escape dei caratteri Vogliamo fare il quoting non su tutta un'espressione, ma solo su un carattere che non vogliamo che venga male interpretato dalla shell Esempio vogliamo indicare un prezzo in dollari echo “il prezzo è di \$5.00” Alcuni utile escape \n (andare a capo), \t (tab)