следите за выходным форматированием сохранения perldoc

Это, вероятно, самая запутанная и раздражающая вещь при работе с ssh (по крайней мере, на мой взгляд).

Причина такого поведения в том, что ssh не сохраняет аргументы при выполнении удаленной команды. Он берет все ваши аргументы и объединяет их вместе, разделенные пробелами.

Итак, когда вы запускаете

ssh remote sh -c 'echo hi > hi.txt'

Фактически, вы выполняете следующее:

ssh remote 'sh -c echo hi > hi.txt'

Это запускает sh -c echo , передает оболочку ( не echo ) аргумент hi (который не используется) и перенаправляет вывод на hi.txt .

Решение, предлагаемое chthonous (вложенное цитирование), является одним из способов решения этой проблемы. Давайте посмотрим на это:

ssh remote sh -c '"echo hi > hi.txt"'

Здесь происходит то, что ssh объединяет все аргументы, поэтому вы фактически получаете:

ssh remote 'sh -c "echo hi > hi.txt"'
1
08.04.2014, 11:46
2 ответа
[1129483] Вы правы, ваше дело в том, чтобы сделать благоустройство, сделанное [1129916]nroff[1129917]/[1129918]groff[1129919].[12168] Чтобы избежать этого благоустройства, обходите [1129920]nroff[1129921]/[1129922]groff[1129923] и выводите свою [1129924]pod[1129925] документацию в текст с помощью [1129926]pod2text[1129927] (это часть дистрибутива Perl, поэтому она должна быть у вас):[12169]
1
27.01.2020, 23:52

"но я теряю информацию о форматировании, которую я хотел бы сохранить."

Дело не в том, что он думает, что ты не на tty, а в том, что он думает, что ты на [1130419] действительно старом [1130420] tty, который переигрывает трюки через [1130421] grotty[1130422], бэк-энд-процессор groff. Из man page:

[HKEY_CURRENT_USER\Control Panel\Desktop]
"DragHeight"="4"
"DragWidth"="4"
Используйте переключатель -c для возврата к старому поведению, распечатав жирный символ c с последовательностью 'c BACKSPACE c' и курсив c последовательностью '_ BACKSPACE c'. В то же время цветной вывод отключен. Аналогичного эффекта можно добиться, установив либо переменную окружения GROFF_NO_SGR, либо команду 'sgr' X (см. ниже).

Проблема в том, что вы не хотите, чтобы [1130425]-c[1130426] или [1130427]GROFF_NO_SGR[1130428] были установлены, но по какой-то причине думаете, что это один или оба.

Проверьте свое окружение на наличие [1130429]GROFF*[1130430], а переменную [1130431]TERM[1130432] - на наличие вменяемых значений.[1130073].

0
27.01.2020, 23:52

Теги

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