Якщо наведено наступний приклад, який встановлює IFS
змінну середовища для символу каналу рядка ...
IFS=$'\n'
- Що точно означає знак долара ?
- Що це робить у цьому конкретному випадку?
- Де я можу прочитати докладніше про це специфічне використання (Google не дозволяє спеціальних символів шукати, і я не знаю, що шукати інакше)?
Я знаю, що таке IFS
змінна середовище, і що таке \n
символ (рядок каналу), але чому б просто не використовувати таку форму:
IFS="\n"
(яка не працює)?
Наприклад, якщо я хочу провести цикл через кожен рядок файлу і хочу використовувати цикл, я можу це зробити:
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'
і цікавилось, чи хтось міг би дати мені пояснення з цього приводу.
\n
це просто (втекла) літера n. Ви маєте рацію , що'\n'
і"\n"
є люфт з подальшим п.