- Стандартные потоки ввода/вывода в UNIX/Linux, Аноним, 19:07 , 14-Июл-09 (1) +1
- Стандартные потоки ввода/вывода в UNIX/Linux, Аноним, 19:07 , 14-Июл-09 (2) +1
- Стандартные потоки ввода/вывода в UNIX/Linux, xguru, 19:46 , 14-Июл-09 (4) +1
>я лучше POSIX[1] почитаю. В этой статье даже не упоминается простой способ >избавиться от нежелательного вывода/ввода путем *закрытия* дескриптора. Напр, > $ ls >&- 2>&- > >А также, что `команда >&файл' и `команда1 |& команда2' являются расширением в tcsh, bash, zsh и отсутствует в ash (almquist shell) и posix shell'е. > >[1] http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_... >&- нормальная вещь, спасибо, но как по мне, неправильно использовать >&- там, где логичнее использовать > /dev/null Сравните ls >&- и ls > /dev/null
- Стандартные потоки ввода/вывода в UNIX/Linux, аноним, 19:51 , 14-Июл-09 (6)
- Стандартные потоки ввода/вывода в UNIX/Linux, xguru, 20:01 , 14-Июл-09 (7)
>Это уже дело вкуса. С одной стороны, зачем писать, если можно не писать? Это аргумент за >&-. Ведь devfs может быть вообще не смонтирован (в chroot/jail например). Кроме того, так короче. >С другой стороны, /dev/null нагляднее и проще понять где /dev/null заменить на >не /dev/null. >Я в общем всецело за /dev/null. Дело не в том даже, а в том, что когда вы используете >&-, то в общем случае добавляется ещё одна ошибка в поток: $ ls >&- ls: write error: Bad file descriptor
- Стандартные потоки ввода/вывода в UNIX/Linux, аноним, 22:35 , 14-Июл-09 (10)
- Стандартные потоки ввода/вывода в UNIX/Linux, xguru, 22:48 , 14-Июл-09 (13)
>Нет. > >% ls >&- >% А скажите, пожалуйста, какая ось у вас? У меня на GNU/Linux: % ls >&- ls: write error: Bad file descriptor book% bash $ ls >&- ls: write error: Bad file descriptor
- Стандартные потоки ввода/вывода в UNIX/Linux, Аноним, 00:18 , 15-Июл-09 (14)
- Стандартные потоки ввода/вывода в UNIX/Linux, Аноним, 00:23 , 15-Июл-09 (16)
- Стандартные потоки ввода/вывода в UNIX/Linux, anonymous_peer, 03:04 , 15-Июл-09 (19)
- Стандартные потоки ввода/вывода в UNIX/Linux, xguru, 10:39 , 15-Июл-09 (21)
Ну не проблема, а скорее особенность.По крайней мере это именно из-за ls (ну и других прог, потому что не только ls так себя ведёт, а многое гнутое из того, что я проверил). Проблема ли это или не проблема, сложно сказать. По крайней мере, он бы мог тупо забивать и пользователю оставалось бы только догадываться, закрыт дескриптор или нет. Вот как здесь: #include<stdio.h>
main() { printf("opennet rulez\n"); fprintf(stderr, "opennet rulez (stderr)\n"); } $ gcc -o /tmp/h h.c $ /tmp/h opennet rulez opennet rulez (stderr) $ /tmp/h >&- opennet rulez (stderr) $ Но он заботится о пользователе и ставит его в курс дела.
- Стандартные потоки ввода/вывода в UNIX/Linux, anonymous_peer, 18:49 , 16-Июл-09 (28)
- Стандартные потоки ввода/вывода в UNIX/Linux, xguru, 21:42 , 16-Июл-09 (31)
>Ну, это же хорошо! Лишняя проверка не повредит, а вот её отсутсвие >— потенциальный баг в программе. Мне вот интересно, ls и проч. вылетает, когда видит, что STDOUT закрыт, или продолжает работать, просто ошибку выводит? Наверное, вылетает
- Стандартные потоки ввода/вывода в UNIX/Linux, anonymous_peer, 02:21 , 17-Июл-09 (32)
- Стандартные потоки ввода/вывода в UNIX/Linux, аноним, 02:31 , 15-Июл-09 (18)
- +1 / Если не видно разницы?, Andrey Mitrofanov, 12:05 , 15-Июл-09 (23)
- уй-ё... опять _они_, Andrey Mitrofanov, 12:28 , 15-Июл-09 (24)
- уй-ё... опять _они_, xguru, 21:41 , 16-Июл-09 (30)
>И эти люди запрещают мне^W^Wрассказывают о кроссплатформенности, переносимоти, позиксвейности и не-баш-измости... http:/openforum/vsluhforumID3/47017.html#7 > > >И ведь каждый раз одно, блин, и то же: "-Вы в шеле? >-Нет, мы в шеле! -А, я думал, вы в шеле..." _ОНИ_ это кто? Я, наверное, пропустил какую-то жестокую тему
- Стандартные потоки ввода/вывода в UNIX/Linux, anonymous_peer, 19:20 , 14-Июл-09 (3) +1
- Стандартные потоки ввода/вывода в UNIX/Linux, аноним, 19:48 , 14-Июл-09 (5)
- Стандартные потоки ввода/вывода в UNIX/Linux, xguru, 20:02 , 14-Июл-09 (8)
>> почему не работает echo text | read val и ряд других > >Один написал бред, другой подхватил. Указанная конструкция замечателно работает: > >% echo text | read var; echo $var >text >У вас какой shell? tcsh? В sh/bash это не работает, проверьте, если не лень >вероятно имелось в виду (echo text | read var); echo $var > >В общем статья хорошая, но тема скобок совершенно не раскрыта. Тема скобок это да
- Стандартные потоки ввода/вывода в UNIX/Linux, xguru, 20:08 , 14-Июл-09 (9)
>[оверквотинг удален] >>Один написал бред, другой подхватил. Указанная конструкция замечателно работает: >> >>% echo text | read var; echo $var >>text >> > >У вас какой shell? > >tcsh? >Хотя однако, какой tcsh, там же read нет. Так что таки bash у вас. Покажите как работает, пожалуйста
- Стандартные потоки ввода/вывода в UNIX/Linux, аноним, 22:36 , 14-Июл-09 (11)
- Стандартные потоки ввода/вывода в UNIX/Linux, Аноним, 00:29 , 15-Июл-09 (17)
- Стандартные потоки ввода/вывода в UNIX/Linux, xguru, 10:44 , 15-Июл-09 (22)
>> Хотя однако, какой tcsh, там же read нет. > >в tcsh есть $< для чтения значения переменной из стандартного ввода > > > set foo=$< > > blah > > echo Here is my answer: $foo > > Here is my answer: blah Это немножечко не то. Нужно же было прочитать строку из вывода другого процесса. %> echo value | set foo=$< %> echo $foo %> Не выводит. Как сделать чтобы работало? Вариант с командной подстановкой не предлагать, нужно чтобы читалась одна строка.
- Стандартные потоки ввода/вывода в UNIX/Linux, gegMOPO4, 17:10 , 15-Июл-09 (26)
- Стандартные потоки ввода/вывода в UNIX/Linux, Аноним, 20:10 , 15-Июл-09 (27)
- Стандартные потоки ввода/вывода в UNIX/Linux, xguru, 21:39 , 16-Июл-09 (29)
Не, ребята, это всё не то. нужно чтобы read читал только одну строку, а остальное не трогал.Например, как вы с помощью командной подстановки, которую вы рекомендуете, сделаете такое: |while read line do .... done Как это сделать в tcsh с помощью той конструкции, которую вы выше рекомендовали?
- Стандартные потоки ввода/вывода в UNIX/Linux, Аноним, 00:22 , 15-Июл-09 (15)
- Стандартные потоки ввода/вывода в UNIX/Linux, Блуд, 16:02 , 15-Июл-09 (25)
- Стандартные потоки ввода/вывода в UNIX/Linux, 42, 11:53 , 20-Ноя-20 (33)
|