Se il seguente esempio, che imposta la IFS
variabile di ambiente su un carattere di avanzamento riga ...
IFS=$'\n'
- Cosa significa esattamente il segno del dollaro ?
- Cosa fa in questo caso specifico?
- Dove posso leggere di più su questo utilizzo specifico (Google non ammette caratteri speciali nelle ricerche e non so cosa cercare altrimenti)?
So cos'è la IFS
variabile d'ambiente e qual è il \n
carattere (avanzamento riga), ma perché non utilizzare semplicemente la seguente forma:
IFS="\n"
(che non funziona)?
Ad esempio, se voglio scorrere ogni riga di un file e voglio usare un ciclo for, potrei farlo:
for line in (< /path/to/file); do
echo "Line: $line"
done
Tuttavia, questo non funzionerà correttamente a meno che non IFS
sia impostato su un carattere di avanzamento riga. Per farlo funzionare, dovrei fare questo:
OLDIFS=$IFS
IFS=$'\n'
for line in (< /path/to/file); do
echo "Line: $line"
done
IFS=$OLDIFS
Nota: non ho bisogno di un altro modo per fare la stessa cosa, ne conosco già molti altri ... Sono solo curioso di questo $'\n'
e mi chiedevo se qualcuno potesse darmi una spiegazione al riguardo.
\n
è solo una lettera (con escape) n. Hai ragione'\n'
e"\n"
sei contraccolpo seguito dal n.