Bash Eval внутри кавычек - PullRequest
       1

Bash Eval внутри кавычек

0 голосов
/ 28 сентября 2011

У меня есть скрипт bash, который принимает один параметр и делает что-то вроде этого:

ssh -t someserver "setenv DISPLAY $ 1; / usr / bin / someprogram"

Как заставить bash подставить вместо $ 1 вместо передачи буквенных символов "$ 1" в качестве отображаемой переменной?

Ответы [ 2 ]

1 голос
/ 28 сентября 2011

Исходя из вашего комментария к ответу sehe, звучит так, будто вы просто хотите, чтобы удаленная команда использовала локальный дисплей X - чтобы программа работала на вашем удаленном сервере (someserver), но отображалась на машине, на которой вы работаликоманда ssh включена.

Это можно сделать, просто указав -X, например,

ssh -X someserver /usr/bin/someprogram

. По некоторым причинам это не работает с несколькими программами, напримерevince.Я не совсем уверен, почему.Я почти уверен, что evince - единственное приложение, у которого возникли проблемы с пересылкой по SSH-соединению.

Если это не то, к чему вы стремитесь, пожалуйста, объясните.

1 голос
/ 28 сентября 2011

Редактировать Вам известно о

ssh -X ...
ssh -Y ...

которые уже поддерживают пересылку X из коробки? Также посмотрите на

xhost +

на случай, если вам нужно увеличить разрешения для «гостей».

Если вы хотите переадресовать нестандартный адрес дисплея X, вы всегда можете использовать

DISPLAY=localhost:3 ssh -XCt user@remote xterm

Бонус : чтобы сделать ssh фоном после аутентификации, добавьте '-f'

Что локально? Это уже должно работать, как показано. Дистанционно? избежать $: \$

Однако я не уверен, откуда команда будет брать свои аргументы ($ 1) из

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...