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