Bash scripting: differenze tra le versioni

m
Riga 394: Riga 394:
<pre>
<pre>
nr="
nr="
"                 # funziona, ma occupa più righe e rompe l'indentazione
"                   # funziona, ma occupa più righe e rompe l'indentazione
nr=$'\n'           # funziona (con Bash) ed è il modo consigliato
nr=$'\n'             # funziona (con Bash) ed è il modo consigliato


# a titolo esemplicativo per l'espansione di comando
# a titolo esemplicativo per l'espansione di comando
nr=$(printf \\n)   # SBAGLIATO, $nr è vuota
nr=$(printf \\n)     # SBAGLIATO, $nr è vuota
nr="$(printf \\n)" # SBAGLIATO, $nr è sempre vuota
nr="$(printf \\n)"   # SBAGLIATO, $nr è sempre vuota


# una possibile soluzione...
# una possibile soluzione...
nr=$(printf \\nX) # $nr contiene "a capo" seguito da X
nr=$(printf \\n%s X) # $nr contiene "a capo" seguito da X
nr=${nr%X}         # $nr contiene "a capo" (la X è rimossa)
nr=${nr%X}           # $nr contiene "a capo" (la X è rimossa)


# Attenzione che il carattere aggiunto dev'essere nell'output del comando
# Attenzione che il carattere aggiunto dev'essere nell'output del comando
nr=$(printf \\n)X  # SBAGLIATO, $nr contiene solo X
nr="$(printf \\n)X" # SBAGLIATO, $nr contiene solo X
</pre>
</pre>


3 581

contributi