Se o exemplo a seguir, que define a IFS
variável de ambiente como um caractere de avanço de linha ...
IFS=$'\n'
- O que significa exatamente o cifrão ?
- O que faz neste caso específico?
- Onde posso ler mais sobre esse uso específico (o Google não permite caracteres especiais nas pesquisas e não sei o que procurar)?
Eu sei qual é a IFS
variável de ambiente e qual é o \n
caractere (avanço de linha), mas por que não usar apenas o seguinte formulário:
IFS="\n"
(que não funciona)?
Por exemplo, se eu quiser percorrer todas as linhas de um arquivo e usar um loop for, poderia fazer o seguinte:
for line in (< /path/to/file); do
echo "Line: $line"
done
No entanto, isso não funcionará direito, a menos que IFS
esteja definido como um caractere de avanço de linha. Para fazê-lo funcionar, eu teria que fazer o seguinte:
OLDIFS=$IFS
IFS=$'\n'
for line in (< /path/to/file); do
echo "Line: $line"
done
IFS=$OLDIFS
Nota: Eu não preciso de outra maneira de fazer a mesma coisa, já conheço muitas outras ... Só estou curioso sobre isso $'\n'
e me perguntei se alguém poderia me dar uma explicação sobre isso.
\n
é apenas uma letra (escapada) n. Você está certo'\n'
e"\n"
é folgado, seguido por n.