Bug 176 - поведение функции read расходится с документацией
Summary: поведение функции read расходится с документацией
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: bash (show other bugs)
Version: unstable
Hardware: all Linux
: P4 minor
Assignee: Ivan Zakharyaschev
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2001-11-24 19:44 MSK by Michael Shigorin
Modified: 2003-08-25 15:18 MSD (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Shigorin 2001-11-24 19:44:59 MSK
Модель:
echo -e \'a\\tb\\tc\\td\' | ( read a b c; echo $a-$b-$c )

При этом последний \\t (нормально входящий в IFS) превращается в пробел (проверено прогоном сквозь od -h).

В man bash говорят, что \"хвост\" _вместе_ с разделителями должен был достаться последней переменной (в примере -- c).

bash-2.04-ipl2mdk.
---

---
zsh работает так, как должен бы и bash.
Comment 1 imz 2002-01-23 20:10:04 MSK
Этот пример не показывает ошибки. Попробуйте поставить замещаемые параметры в двойные кавычки:

echo -e \'a\\tb\\tc\\td\' | ( read a b c; echo \"$a-$b-$c\" ) | od -t a

и Вы увидете, что знак Horizontal Tab остается там (bash-2.05-alt4).

Он испарялся при прохождении стадии word splitting.
Comment 2 imz 2002-01-23 20:10:04 MSK
Этот пример не показывает ошибки. Попробуйте поставить замещаемые параметры в двойные кавычки:

echo -e \'a\\tb\\tc\\td\' | ( read a b c; echo \"$a-$b-$c\" ) | od -t a

и Вы увидете, что знак Horizontal Tab остается там (bash-2.05-alt4).

Он испарялся при прохождении стадии word splitting.