Bash scripting - espansioni non quotabili: differenze tra le versioni

m (tilde)
Riga 9: Riga 9:
==Espansione di tilde==
==Espansione di tilde==
Sintassi:
Sintassi:
* <code>~</code> si espande alla home, se non è quotata (equivalente all'uso di $HOME, che può essere quotata);
* <code>~</code> (per digitarlo con tastiera con layout italiano: <code>Ctrl-ì</code>) si espande alla home, se non è quotata (equivalente all'uso di ${HOME}, che può essere quotata);
* <code>~utente</code> si espande alla home di un dato utente, se esiste, ma la stringa non può essere quotata né essere una variabile.
* <code>~utente</code> si espande alla home di un dato utente, se esiste, ma la stringa non può essere quotata né essere una variabile.


Riga 31: Riga 31:
printf %s\\n ~fdsfd  # stampo ~fdsfd (l'utente fdsfd non esiste)
printf %s\\n ~fdsfd  # stampo ~fdsfd (l'utente fdsfd non esiste)
</pre>
</pre>
È possibile indicare un percorso a partire dalla home, in tal caso può essere quotata la parte successiva a <code>/</code>:
<pre>
printf %s\\n ~/"percorso quotato" # può contenere anche variabili
printf %s\\n ~utente/"percorso"  # come sopra
printf %s\\n ~"/percorso"        # ERRORE: nessuna espansione!
</pre>
Si noti che il percorso può anche non esistere, infatti soltanto le stringhe <code>~/</code> e <code>~utente/</code> sono espanse. Non è infatti un'espansione di percorso.


==Espansione di percorso==
==Espansione di percorso==
3 581

contributi