Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Alexey Vyskubov                      2:5020/400     27 May 2003  12:25:28
 To : Valentin Nechayev
 Subject : Re: bash
 -------------------------------------------------------------------------------- 
 
 Valentin Nechayev <netch@segfault.kiev.ua> wrote:
 
 VN>          a. IFS white space shall be ignored at the beginning and end of
 VN>             the input.
 VN>          b. Each occurrence in the input of an IFS character that is not
 VN>             IFS white space, along with any adjacent IFS white space,
 VN>             shall delimit a field, as described previously.
 VN>          c. Non-zero-length IFS white space shall delimit a field.
 
 Я наблюдаю тут некоторую двусмысленность. Если понимать эти правила как
 "грамматику", то да, при IFS=' :' "a : b" -- это два поля. Если же
 понимать их как правила разбора входящего потока, то это три поля. А
 именно:
 
 Получаем  Реагируем
 
 a     запомнили
 ' '    применяем правило c; первое поле закончилось.
 :     применяем правило b: второе поле (пустое) закончилось.
 ' '    все еще применяем правило b
 b     запомнили
 конец строки  конец третьего поля
 
 Лично моё мнение состоит в том, что стандарт должен описывать не
 грамматику, а правила разбора входящего потока. Иначе пайп перестает
 быть пайпом (не в данном случае, а вообще).
 
 VN> IFS=': '
 VN> echo 'blah : nah ' | { read a b c; echo "a='$a' b='$b' c='$c'"; }
 
 [SKIP]
 
 VN> (в прочих). По пункту 3b, вся конструкция ' : ' должна считаться одним
 VN> разделителем. В конце, должен пропуститься финальный IFS white space,
 
 Как я понимаю, по пункту 3c первый пробел -- разделитель; за ним
 двоеточие и второй пробел -- второй разделитель, по пункту 3b.
 
 VN> по пункту 3a. Итого должно получиться: a='blah', b='nah', c=''.
 
 Итого должно получиться 'blah', '', 'nah'.
 
 VN> $ sh smax1
 VN> a='blah' b='' c=' nah '
 VN> $ bash smax1
 VN> a='blah' b='' c='nah'
 VN> $ zsh smax1
 VN> a='blah' b='nah' c=''
 VN> $ ksh smax1
 VN> a='blah' b='' c='nah'
 VN> 
 VN> Такое поведение только у zsh.
 
 Вот-вот :)
 
 VN> Теперь меняем местами символы в IFS (напоминаю, что тут их порядок
 VN> не имеет значения).
 VN> 
 VN> $ cat smax1.1
 VN> IFS=' :'
 VN> echo 'blah : nah ' | { read a b c; echo "a='$a' b='$b' c='$c'"; }
 
 [SKIP]
 
 VN> Hа этот раз sh и zsh показали правильно.
 
 Hа этот раз sh тоже сглючил :))
 
 VN> Вывод - пользуйтесь zsh ;)))
 
 Вывод -- пользуйтесь bash/ksh.
 
 Я не претендую на то, что моё понимание стандарта правильно. Я не знаю.
 Hужно спрашивать у человека, у которого родной язык английский. Впрочем,
 судя по поведению разных шеллов, это не помогает :)
 
 -- 
 Alexey
 --- ifmail v.2.15dev5
  * Origin: Nokia (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 bash   Sergey Guriev   21 May 2003 20:59:46 
 Re: bash   Ruslan Kosolapov   22 May 2003 08:49:47 
 Re: bash   Yura Pismerov   22 May 2003 17:46:28 
 Re: bash   Ivan Churkin   22 May 2003 18:53:42 
 Re: bash   Evgenii Terechkov   23 May 2003 23:23:44 
 Re: bash   Victor Wagner   24 May 2003 00:55:38 
 Re: bash   Evgenii Terechkov   24 May 2003 21:47:05 
 Re: bash   Victor Wagner   24 May 2003 20:59:11 
 Re: bash   Valentin Nechayev   26 May 2003 00:50:47 
 Re: bash   Artem Chuprina   26 May 2003 14:15:40 
 Re: bash   Valentin Nechayev   26 May 2003 21:56:20 
 Re: bash   Alexey Vyskubov   27 May 2003 12:25:28 
 Re: bash   Eugene B. Berdnikov   27 May 2003 18:03:40 
 Re: bash   Valentin Nechayev   27 May 2003 20:58:36 
 zsh (was: bash)   Alexey Vyskubov   28 May 2003 10:06:52 
 Re: zsh   Alexey Vyskubov   28 May 2003 10:39:10 
 Re: zsh   Michael Shigorin   28 May 2003 23:05:43 
 Re: bash   Evgenii Terechkov   26 May 2003 23:13:20 
 Re: bash   Artem Chuprina   27 May 2003 12:05:35 
 Re: bash   Evgenii Terechkov   27 May 2003 23:49:22 
 Re: bash   Evgenii Terechkov   26 May 2003 23:12:01 
 Re: bash   Michael Shigorin   28 May 2003 23:05:42 
 Re: bash   Evgenii Terechkov   26 May 2003 05:36:14 
 Re: bash   Alexey Vyskubov   26 May 2003 11:11:31 
 Re: bash   Victor Wagner   26 May 2003 11:41:20 
 Re: bash   Alexey Vyskubov   26 May 2003 14:00:15 
 Re: bash   Valentin Nechayev   26 May 2003 00:50:47 
 Re: bash   Evgenii Terechkov   26 May 2003 23:32:49 
 Re: bash   Aleksey Cheusov   27 May 2003 17:59:00 
 Re: bash   Evgenii Terechkov   28 May 2003 00:48:53 
 Re: bash   Aleksey Cheusov   28 May 2003 12:43:05 
 Re: bash   Evgenii Terechkov   29 May 2003 00:26:00 
 Re: bash   Aleksey Cheusov   29 May 2003 11:58:47 
 Re: bash   Evgenii Terechkov   29 May 2003 22:05:36 
 Re: bash   Michael Shigorin   26 May 2003 23:05:28 
 Re: bash   Evgenii Terechkov   27 May 2003 23:39:05 
 Re: bash   Valentin Nechayev   02 Jun 2003 07:00:24 
 Re: bash   Serguei Khvatov   02 Jun 2003 13:07:53 
 Re: bash   Valentin Nechayev   02 Jun 2003 15:07:58 
 Re: bash   Serguei Khvatov   02 Jun 2003 15:58:26 
 Re: bash   Valentin Nechayev   02 Jun 2003 17:03:21 
 Re: bash   Eugene B. Berdnikov   02 Jun 2003 20:03:35 
 Re: bash   Andrew Dolgov   24 May 2003 02:25:00 
 Re: bash   Evgenii Terechkov   24 May 2003 21:58:29 
 Re: bash   Aleksey Cheusov   24 May 2003 17:58:53 
 Re: bash   Evgenii Terechkov   26 May 2003 05:58:18 
 Re: bash   Ruslan Kosolapov   26 May 2003 10:24:38 
 Re: bash   Evgenii Terechkov   26 May 2003 23:45:22 
 Re: bash   Victor Wagner   27 May 2003 00:53:35 
 Re: bash   Evgenii Terechkov   27 May 2003 23:45:33 
 Re: bash   Victor Wagner   27 May 2003 23:53:52 
 Re: bash   Evgenii Terechkov   29 May 2003 00:28:37 
 Re: bash   Eugene B. Berdnikov   29 May 2003 14:03:31 
 Re: bash   Evgenii Terechkov   29 May 2003 21:59:11 
 Re: bash   Eugene B. Berdnikov   30 May 2003 14:03:27 
 Re: bash   Evgenii Terechkov   28 May 2003 21:52:05 
 Re: bash   Michael Shigorin   30 May 2003 00:05:46 
 Re: bash   Eugene B. Berdnikov   30 May 2003 14:03:27 
 Re: bash   Vasily Tchekalkin   30 May 2003 15:08:13 
 Re: bash   Evgenii Terechkov   29 May 2003 05:37:58 
 Re: bash   Michael Shigorin   03 Jun 2003 00:05:59 
 Re: bash   Michael Shigorin   30 May 2003 00:05:45 
 bash   Evgenii Terechkov   28 May 2003 23:25:08 
 Re: bash   Aleksey Cheusov   27 May 2003 17:59:00 
 Re: bash   Evgenii Terechkov   28 May 2003 00:50:17 
 Re: bash   Alexey Vyskubov   28 May 2003 10:42:17 
 bash   Evgenii Terechkov   29 May 2003 01:07:43 
 Re: bash   Michael Shigorin   30 May 2003 00:05:46 
 Re: bash   Evgenii Terechkov   28 May 2003 21:58:40 
 Re: bash   Aleksey Cheusov   28 May 2003 12:43:05 
 bash   Evgenii Terechkov   29 May 2003 01:16:48 
 Re: bash   Aleksey Cheusov   29 May 2003 11:58:48 
 Re: bash   Evgenii Terechkov   29 May 2003 22:12:26 
 Re: bash   Alexey Vyskubov   30 May 2003 11:16:15 
 Re: bash   Eugene B. Berdnikov   30 May 2003 14:03:28 
 Re: bash   Alexey Vyskubov   30 May 2003 14:57:01 
 Re: bash   Pavel L.L.   30 May 2003 15:06:10 
 Re: bash   Alexey Vyskubov   02 Jun 2003 11:57:36 
 Re: bash   Valentin Nechayev   02 Jun 2003 12:08:23 
 Re: bash   Alexey Vyskubov   02 Jun 2003 12:49:17 
 Re: bash   Serguei Khvatov   02 Jun 2003 13:33:43 
 Re: bash   Valentin Nechayev   01 Jun 2003 21:53:38 
 Re: bash   Alexey Vyskubov   02 Jun 2003 11:59:39 
 bash   Evgenii Terechkov   02 Jun 2003 22:02:52 
 bash   Mikkle V. Sokolov   26 May 2003 10:49:32 
 Re: bash   Michael Shigorin   26 May 2003 23:05:59 
 bash   Mikkle V. Sokolov   26 May 2003 23:46:28 
 Re: bash   Evgenii Terechkov   27 May 2003 23:56:10 
 Re: bash   Michael Shigorin   28 May 2003 23:05:44 
 Re: bash   Evgenii Terechkov   26 May 2003 23:48:07 
 bash   Mikkle V. Sokolov   26 May 2003 23:48:20 
 Re: bash   Evgenii Terechkov   27 May 2003 23:40:57 
 Re: bash   Aleksey Cheusov   26 May 2003 10:59:09 
 Re: bash   Evgenii Terechkov   26 May 2003 23:33:55 
 Re: bash   Aleksey Cheusov   27 May 2003 12:59:21 
 Re: bash   Evgenii Terechkov   28 May 2003 00:04:58 
 Re: bash   Aleksey Cheusov   28 May 2003 12:42:34 
 Re: bash   Evgenii Terechkov   29 May 2003 00:33:22 
 Re: bash   Ruslan Kosolapov   29 May 2003 06:42:48 
 Re: bash   Evgenii Terechkov   29 May 2003 21:33:57 
 Re: bash   Ruslan Kosolapov   30 May 2003 07:22:39 
 Re: bash   Evgenii Terechkov   29 May 2003 05:44:39 
 Re: bash   Aleksey Cheusov   29 May 2003 11:59:19 
 Re: bash   Evgenii Terechkov   29 May 2003 21:41:58 
 Re: bash   Vladimir Bormotov   30 May 2003 01:34:40 
 Re: bash   Evgenii Terechkov   29 May 2003 05:16:27 
 Re: bash   Vladimir Bormotov   01 Jun 2003 00:30:54 
 Re: bash   Ramazan Jah-Far   01 Jun 2003 03:07:38 
 Re: bash   Evgenii Terechkov   31 May 2003 00:03:18 
 Re: bash   Aleksey Cheusov   02 Jun 2003 14:58:47 
 Re: bash   Alexey Vyskubov   02 Jun 2003 16:00:41 
 Re: bash   Artem Chuprina   02 Jun 2003 16:06:49 
 Re: bash   Aleksey Cheusov   02 Jun 2003 17:58:19 
 Re: bash   Artem Chuprina   02 Jun 2003 20:18:51 
 Re: bash   Aleksey Cheusov   02 Jun 2003 20:58:26 
 Re: bash   Valentin Nechayev   02 Jun 2003 22:18:55 
 Re: bash   Aleksey Cheusov   02 Jun 2003 23:59:52 
 Re: bash   Artem Chuprina   03 Jun 2003 13:13:55 
 Re: bash   Aleksey Cheusov   02 Jun 2003 17:58:50 
 Re: bash   Alexey Vyskubov   02 Jun 2003 18:03:54 
 Re: bash   Aleksey Cheusov   02 Jun 2003 18:58:27 
 Re: bash   Alexey Vyskubov   02 Jun 2003 19:12:17 
 Re: bash   Aleksey Cheusov   02 Jun 2003 19:27:32 
 Re: bash   Victor Wagner   03 Jun 2003 09:05:28 
 Re: bash   Aleksey Cheusov   03 Jun 2003 12:58:29 
 Re: bash   Dennis Vshivkov   03 Jun 2003 14:30:01 
 Сколько иметь шеллов в системе? (was: bash)   Alexey Vyskubov   30 May 2003 11:14:11 
 Re: Сколько иметь шеллов в системе? (was: bash)   Evgenii Terechkov   28 May 2003 21:44:31 
 Re: bash   Michael Shigorin   30 May 2003 00:05:46 
 Re: bash   Evgenii Terechkov   29 May 2003 05:47:40 
 Re: bash   Valentin Nechayev   27 May 2003 22:37:13 
 bash   Evgenii Terechkov   28 May 2003 18:04:55 
 Re: bash   Valentin Nechayev   26 May 2003 21:39:19 
 Re: bash   Evgenii Terechkov   27 May 2003 06:00:24 
 Re[2]: bash   Alexandr S. Agranovsky   31 May 2003 11:55:31 
 Re: bash   Evgenii Terechkov   29 May 2003 23:12:07 
 bash   Evgenii Terechkov   30 May 2003 11:07:18 
Архивное /ru.linux/99811ab8201e.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional