Ubuntu: перенаправление команды ssh на существующий xterm
Эта команда выполняет удаленно на "имя машины" команду "glxgears" на новом терминале xterm:
xterm -hold -e sshpass -p <password> ssh -X -o StrictHostKeyChecking=no <user name>@<machine name> glxgears
То, что я хотел бы сделать, это запустить другие удаленные команды ssh на "имя машины", которые будут запускаться с того же xterm (тот, в котором уже запущен glxgears).
Это представляется возможным, так как работает следующее:
если я наберу
w
Я вижу эту строку:
<username> pts/37 :0 12:41 3:30 0.00s 0.00s sshpass -p zzzzzzzzzz ssh -X -o StrictHostKeyChecking=no <user name>@<machine name> glxgears
а также
echo "test" > /dev/pts/37
выводит "test" в xterm, в котором запущен "glxgear"
Но:
xterm -hold -e sshpass -p <passwd> ssh -X -o StrictHostKeyChecking=no <username>@<machine name> echo "test" > /dev/pts/37
выведите "test" в новом xterm.
Я полагаю, что команда 'echo "test" > /dev/pts/37' выполняется на "имя машины", а не "echo" test "", которая выполняется на "имя машины" и перенаправляется в / pts / 37 на клиентском компьютере.,
Какой будет правильный синтаксис?
1 ответ
Вся команда, подлежащая удаленному выполнению, включая перенаправление, должна быть заключена в кавычки, чтобы предотвратить использование оператора перенаправления локальной оболочкой:
ssh -X -o StrictHostKeyChecking=no <username>@<machine name> "echo 'test' > /dev/pts/37"