Несподівана поведінка відступу, коли я встановлюю термінал в режимі "необроблений" - чому це відбувається?


27

Виходячи з того, що я прочитав, коли термінал знаходиться в сирому режимі, символи не обробляються драйвером терміналу, а надсилаються прямо наскрізь.

Я встановив термінал в сирому режимі, використовуючи команду stty raw, і я помітив, що вихід кожного разу з відступом праворуч, поки не буде більше місця. Це те, що я маю на увазі:

введіть тут опис зображення

Чому така поведінка відбувається ?!

Відповіді:


45

Одне з sttyпараметрів ( onlcr) вказує драйверу терміналу перетворити нову лінію (яка насправді є ASCII-стрічкою рядків) у перевезення-повернення плюс передачу рядків.

Unix-подібні системи просто записують нову лінію в кінцеві рядки, дозволяючи драйверу терміналу зробити все правильно (перетворити новий рядок у перевезення каретки плюс подачу рядків).

Перевезення-повернення "йде ліворуч", а лінія-стрічка "йде вниз".

Якщо ви встановите термінал в режимі "необроблений", новий рядок більше не буде перетворений на перевезення та повернення на рядку. Не вистачаючи повернення вагона, ви отримуєте такий ефект сходів .


і для глибокого перегляду ви можете подивитися на @ stéphane-chazelas дійсно хороший пост: unix.stackexchange.com/questions/151916/… , де показано багато цікавих речей про термінальні перетворення (та їх побічні ефекти) . Коротше кажучи: лише "ssh -t" використовувати інтерактивні команди, але у ваших сценаріях використовувати просто ssh, якщо ви хочете отримати саме те, що генерувала команда (напр .: файли tar, створені на одній стороні ssh та прочитані / написані на інша сторона: не додайте "-t", або це може (... буде?) зіпсувати ваші бінарні файли)
Олів'є Дулак
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.