Декодирование “прогр> файл 2> &1”

Или, если все, что Вы хотите сделать, выбирают, какой исполняемый файл исчерпать, можно сделать это:

executable=$(type -P tmux)
executable=${executable:-xterm} # For example
exec $executable

Расширение var=${var:-string} присваивает значению "строку" var если и только если ничему не присвоили var прежде.

3
24.07.2014, 02:20
2 ответа

Вам просто нужно прочитать его слева направо:

  • > file --> перенаправить все из stdout в file.(Вы можете себе представить, что у Вас есть ссылка, точка-точка из stdout на file)
  • 2>&1 --> перенаправить все вещи из stderr в stdout, который теперь указан на file.

Итак, вывод:

stderr --> stdout --> file

Здесь можно увидеть хорошую ссылку .

.
6
27.01.2020, 21:11

Что ты упускаешь? Кажется, вы все поняли. Файл > файл отправляет вывод в файл , а 2>&1 отправляет стандартную ошибку в стандартный вывод. В результате и stderr, и stdout отправляются в файл .

Для иллюстрации рассмотрим этот простой Perl скрипт:

#!/usr/bin/env perl
print STDERR "Standard Error\n";
print STDOUT "Standard Output\n";

Теперь посмотрим на его вывод:

$ foo.pl     ## Both error and out are printed to the terminal
Standard Error
Standard Output

$ foo.pl 2>file  ## Error is redirected to file, only output is shown
Standard Output  
$ foo.pl 1>file ## Output is redirected to file, only error is shown
Standard Error

$ foo.pl 1>file 2>&1 ## Everything is sent to file, nothing is shown.
2
27.01.2020, 21:11

Теги

Похожие вопросы