Jeśli poniższy przykład, który ustawia IFS
zmienną środowiskową na znak wysuwu wiersza ...
IFS=$'\n'
- Co dokładnie oznacza znak dolara ?
- Co robi w tym konkretnym przypadku?
- Gdzie mogę przeczytać więcej na temat tego konkretnego zastosowania (Google nie zezwala na znaki specjalne w wyszukiwaniu i nie wiem, czego szukać w innym przypadku)?
Wiem, co to IFS
jest zmienna środowiskowa i jaki jest jej \n
znak ( nowy wiersz), ale dlaczego nie użyć następującego formularza:
IFS="\n"
(który nie działa)?
Na przykład, jeśli chcę zapętlić każdy wiersz pliku i chcę użyć pętli for, mogę to zrobić:
for line in (< /path/to/file); do
echo "Line: $line"
done
Jednak to nie zadziała poprawnie, chyba że IFS
zostanie ustawione na znak wysuwu wiersza. Aby to zadziałało, musiałbym to zrobić:
OLDIFS=$IFS
IFS=$'\n'
for line in (< /path/to/file); do
echo "Line: $line"
done
IFS=$OLDIFS
Uwaga: nie potrzebuję innego sposobu na zrobienie tego samego, znam już wiele innych ... Ciekawi mnie tylko to $'\n'
i zastanawiałem się, czy ktoś mógłby mi to wyjaśnić.
\n
to po prostu (uciekana) litera n. Masz rację'\n'
i"\n"
masz odwagę, po której następuje n.