В своем комментарии к ответу fons вы говорите, что он не работает во время использования screen.
Не могли бы вы уточнить это? Глядя на исходный код openssh, sshd выполняет команду, вызывая
YOUR_DEFAULT_SHELL -c COMMAND
Так, например, если по умолчанию оболочка screen, то это не будет работать , все это хорошо , потому что screen«S -cфлаг просто замещает его .scrreenrc. Таким образом, на самом деле нет способа отправить команды на экран, если это ваша оболочка по умолчанию. Вы фактически должны запустить screen как команду, данную ssh, но с оболочкой по умолчанию, которая не является screen .
Если это то, что вы пытаетесь сделать, я думаю, что все будет действительно странно, так screenкак закроются окна с неинтерактивными программами, поэтому вам придется сделать трюк, аналогичный фонам, но на один уровень глубже. ТАК, с, например, / bin / bash (а не screen) в качестве оболочки по умолчанию Что-то вроде:
ssh user@host -t 'screen bash -l -c "ls;bash"'
Который должен - сделать глубокий вдох - ssh в хост, запустить bash -c командой screen, которая откроет новое окно. Если бы это окно только открылось до ls, оно бы закончилось, и экран закрылся бы, поэтому мы используем трюк с фонсами в новом окне экрана .
Я думаю, что это сработает, даже если вы пытаетесь это сделать;)