Jeśli poniższy przykład, który ustawia IFSzmienną ś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 IFSjest zmienna środowiskowa i jaki jest jej \nznak ( 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 IFSzostanie 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ć.
\nto po prostu (uciekana) litera n. Masz rację'\n'i"\n"masz odwagę, po której następuje n.