1

Я знаю, что наличие & в конце команды заставляет ее работать в фоновом режиме. Мне было интересно, что означает &Number ? Я искал сценарий, в котором некоторые команды работают с &1 а некоторые с &2 .

4 ответа4

5

Это следует перенести в SuperUser, но ответ заключается в том, что они ссылаются на дескрипторы файлов. & 1 - это стандартный вывод, а & 2 - стандартная ошибка, поэтому программа запускается так:

./program 2>&1

Перенаправляет дескриптор 2 (стандартная ошибка) на дескриптор 1 (стандартный вывод)

Обычное использование это сделать что-то вроде этого:

./program >file.txt 2>&1

Который перенаправляет стандартный вывод в файл, а затем стандартную ошибку в стандартный вывод, так что вы получаете как обычный, так и вывод ошибок, зафиксированный в файле.

1

Для оболочек типа Bourne (bash и т.д.)

mycmd > /output/file 2>&1

объединяет стандартный вывод ошибок (дескриптор файла 2) со стандартным выводом (дескриптор файла 1) и записывает их оба в /output/file .

1

Символ & указывает файловый дескриптор. & 1 - это стандартный вывод, а & 2 - это стандартный вывод.

Если вы еще не нашли хороший сайт для изучения сценариев оболочки, я рекомендую этот:

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

0

&1 - стандартный вывод (STD_OUT), &2 - стандартный поток ошибок (STD_ERR)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .