Если следующий пример, который устанавливает переменную среды IFS
символу строки...
IFS=$'\n'
- Что означает знак доллар точно
- Что он делает в этом конкретном случай?
- Где я могу узнать больше об этом конкретном использовании (Google не разрешает специальные символы при поиске, и я не знаю, что искать в противном случае)?
Я знаю, что такое переменная среды IFS
, и какой символ \n
(строка), но почему бы просто не использовать следующую форму:
IFS="\n"
(который не работает)?
Например, если я хочу перебирать каждую строку файла и хочу использовать цикл for, я мог бы сделать это:
for line in (< /path/to/file); do
echo "Line: $line"
done
Однако это не будет работать правильно, если только IFS
не установлен на символ линии. Чтобы заставить его работать, я должен был бы сделать это:
OLDIFS=$IFS
IFS=$'\n'
for line in (< /path/to/file); do
echo "Line: $line"
done
IFS=$OLDIFS
Примечание: Мне не нужен другой способ сделать то же самое, я знаю много других... Мне только интересно, что $'\n'
и задавался вопросом, может ли кто-нибудь дать мне объяснение на нем.