2013-10-01 4 views
4
scriptlist=`ls $directory_/fallback_* 2> /dev/null` 

Что именно является целью команды 2>? Я опустил его и выполнил команду, он просто отлично работает.Что означает значение 2> в командной строке Unix?

И, если вывод ls сохраняется в файле/dev/null, что именно будет содержать переменная scriptlist. Когда я выполнил код, результат был в переменной, и ничего не было в файле null. Если мы удалим 2, то вывод будет в файле вместо переменной. Любая идея, что именно делает эта строка кода?

+1

'$ {script} $ * >> $ logfile 2> & 1 & 1 <'? Ответ: [В оболочке, что такое «2> и 1»?] (Http://stackoverflow.com/questions/818255/in-the-shell-what-is-21) – Smith

ответ

3

любая идея, что именно «2» делает здесь

Здесь 2 является дескриптором файла со ссылкой на STDERR.

2> /dev/null означает, что STDERR будет перенаправлен на нулевое устройство /dev/null.

Полная линия вы упоминали сохраняет вывод, т.е. STDOUT (не обращая внимания на STDERR), возвращаемый ls $directory_/fallback_* в переменную scriptlist.

7

Дескриптор файла 2 представляет собой стандартную ошибку. (другие специальные файловые дескрипторы включают 0 для стандартного ввода и 1 для стандартного вывода).

2> /dev/null средство для перенаправления стандартной ошибки на /dev/null. /dev/null - это специальное устройство, которое отбрасывает все, что написано на нем.

Вводя все вместе, эта строка кода хранит стандартный вывод команды ls $directory_/fallback_* 2> /dev/null int переменной scriptlist (и стандартная ошибка отбрасывается).

5
scriptlist=`ls $directory_/fallback_* 2> /dev/null` 

Как вы приложили всю линию ls $directory_/fallback_* 2> /dev/null в обратных кавычках, вывод команды ls хранится в scriptlist переменном.

Кроме того, для 2>redirecting выхода stderr к /dev/null ( нигде ).

Смежные вопросы