Bash scripting - espansioni non quotabili: differenze tra le versioni

m
"do" su una nuova riga (uniformazione alla sintassi usata altrove)
(ampliate sezioni con più esempi)
m ("do" su una nuova riga (uniformazione alla sintassi usata altrove))
Riga 85: Riga 85:


L'esistenza di file ottenuti da tali espansioni va pertanto sempre controllata, impiegando l'espansione per generare una lista di stringhe all'interno di un ciclo <code>for</code>, ed effettuando poi il controllo di esistenza su ognuna:
L'esistenza di file ottenuti da tali espansioni va pertanto sempre controllata, impiegando l'espansione per generare una lista di stringhe all'interno di un ciclo <code>for</code>, ed effettuando poi il controllo di esistenza su ognuna:
<pre>for file in ./*; do
<pre>
for file in ./*
do
   if [ -e "$file" ]; then
   if [ -e "$file" ]; then
       ...
       ...
Riga 131: Riga 133:
<pre>
<pre>
shopt -s dotglob nullglob
shopt -s dotglob nullglob
for file in ./*; do
for file in ./*
do
   ...
   ...
done
done
Riga 142: Riga 145:


<pre>
<pre>
for f in ./*.txt; do
for f in ./*.txt
do
   if [ -f "$f" ]; then
   if [ -f "$f" ]; then
       mv -- "$f" "${f%txt}log"
       mv -- "$f" "${f%txt}log"
Riga 180: Riga 184:
Questa espansione è effettuata prima di tutte le altre, e il risultato dell'espansione se non quotato può quindi subire ulteriori espansioni. Per esempio per effettuare un'operazione sui file nella cartella corrente che hanno una data estensione, si può scrivere:
Questa espansione è effettuata prima di tutte le altre, e il risultato dell'espansione se non quotato può quindi subire ulteriori espansioni. Per esempio per effettuare un'operazione sui file nella cartella corrente che hanno una data estensione, si può scrivere:
<pre>
<pre>
for file in ./*.{odt,abw,txt,rtf,doc}; do
for file in ./*.{odt,abw,txt,rtf,doc}
do
   if [ -e "$file" ]; then
   if [ -e "$file" ]; then
       ...
       ...
Riga 188: Riga 193:
e la prima riga è equivalente a:
e la prima riga è equivalente a:
<pre>
<pre>
for file in ./*.odt ./*.abw ./*.txt ./*.rtf ./*.doc; do
for file in ./*.odt ./*.abw ./*.txt ./*.rtf ./*.doc
</pre>
</pre>


3 581

contributi