Когда я выполняю приведенный ниже код из командной строки:
(
mystring="foo:bar baz rab"
for word in $mystring; do
echo "Word: $word"
done
)
В результате я получаю:
Word: foo:bar
Word: baz
Word: rab
Это означает, что $IFS
будет интерпретироваться как пробелперсонаж.Но затем я пытаюсь изменить это, выполнив следующие действия:
echo "foo:bar${IFS}baz${IFS}rab"
И напечатает:
foo:bar
baz
rab
Что теперь означает, что $IFS
- это \n
.Я бы ожидал "foo:bar baz rab"
Что является причиной этого несоответствия?