|
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 |
|
|