zamotivator 13.08.2011 16:18 tsarevC5F77F43

Из области странного: вот есть у меня bash.
Запускаю команду вида command 2>&1 1>log — и он всё равно пишет stderr на консоль.
Если делаю | less — то всё нормально, в less попадаёт всё — и stdout, и stderr.
Чего именно в bash я не понимаю? Объясните идиоту.

1. werehuman 13.08.2011 16:19 Psi+

2>&1 > log

2. zamotivatorwerehuman /1 13.08.2011 16:19 tsarevC5F77F43

а почему 1>log не работает? Если я делаю 1>log 2>err — всё ок, а тут засада. я логики не понимаю.

3. werehumanzamotivator /2 13.08.2011 16:20 Psi+

баш — он такой, да

4. zamotivatorwerehuman /3 13.08.2011 16:21 tsarevC5F77F43

а какова логика-то?

5. werehumanzamotivator /4 13.08.2011 16:21 Psi+

хз

6. L29Ah 13.08.2011 16:24 tkabber-home

Ты — хуй и не раскурил порядок применения перенаправлений. Поменяй местами.

7. zamotivatorL29Ah /6 13.08.2011 16:25 tsarevC5F77F43

гм, т.е. 2 связывается не с 1, а с консолью (на которую 1 смотрит в данный момент времени)? Т.е. 1 — это типа симлинк, а не хард-линк как я думал?

9. L29Ahzamotivator /7 13.08.2011 16:26 tkabber-home

Note that the order of redirections is significant. For example, the command

ls > dirlist 2>&1

directs both standard output and standard error to the file dirlist, while the command

ls 2>&1 > dirlist

directs only the standard output to file dirlist, because the standard error was duplicated from the
standard output before the standard output was redirected to dirlist.

-- man bash. Ты точно хуй, если не прочитал это.

10. zamotivatorL29Ah /9 13.08.2011 16:28 tsarevC5F77F43

да, я не читал man bash. Как-то без нужды оно было. То тоже хуй, большинство линуксоидов хуи. Исключение — моя девушка, она хоть и линуксоид, но не хуй, а пизда.
Спасибо за высокодуховную дискуссию.

11. L29Ahzamotivator /10 13.08.2011 17:17 tkabber-home

Вот хуй-то а, не прочитал документацию, а сразу лезет задавать свои смешные вопросы ИЗ ОБЛАСТИ СТРАННОГО. Гнать таких сцаными тряпками надобно.

12. gelraenzamotivator /7 13.08.2011 21:47

Какбе там всё предельно примитивно: 2>&1 делает "close(2);dup2(1,2)", а 1>log делает "close(1);dup2(open("log"),1). Куда какой дескриптор будет указывать после вызовов в такой последовательности, думаю, понятно. А всякой alien logic с "хардлинками-симлинками"(sic!) там нету, да и не нужно.

Do you really want to delete ?