2

Есть заявление

stty onlcr 0> & 1

в файле rc.sysvinit. Что именно делает эта линия? В чем причина перенаправления стандартного ввода в стандартный вывод?

2 ответа2

1
$ man stty
...
   * [-]onlcr
          translate newline to carriage return-newline
...

и в файле есть даже комментарий, который вы не упомянули:

# Set onlcr to avoid staircase effect.

Так что это должно прояснить, что делает линия. stty работает с stdin по умолчанию, но эта строка меняет настройки вывода, поэтому 0>&1 заставляет работать на stdout . Что на самом деле может иметь значение, если у вас есть окно, где стандартный вывод консоли подключен к одному последовательному порту, а ввод стандартный ввод консоли - к другому источнику ...

редактировать

stty меняет параметры терминала. Для этого он должен выполнять системные вызовы, которые работают с дескриптором файла, который соответствует терминалу. По умолчанию это стандартный stdin , поскольку на странице руководства написано:

  -F, --file=DEVICE
          open and use the specified DEVICE instead of stdin

Я не уверен, какой пример поможет вам ...

0

Если вы man stty вы получите документацию для stty , которая среди прочего говорит

[-]onlcr переводит перевод строки на возврат каретки-перевод строки

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

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