Передача переменной через ssh не работает - PullRequest
6 голосов
/ 10 марта 2010

Я пытаюсь передать переменную через ssh-соединение, например:

working_dir="/home/user/some_dir/"

ssh $USER@some_host 'qsub $working_dir/some_file.txt'

Само соединение установлено, но этот код выдает мне следующую ошибку:

working_dir: Undefined variable.

Это может быть объяснено тем фактом, что на удаленной машине нет переменной $working_dir, поскольку она была определена локально.

Есть ли способ получить значение в команде локально?

Ответы [ 2 ]

14 голосов
/ 10 марта 2010

Попробуйте использовать двойные кавычки, которые должны оценивать переменную локально:

ssh $USER@some_host "qsub $working_dir/some_file.txt"

3 голосов
/ 10 марта 2010

Вы используете строку в одинарных кавычках - и я полагаю, что переменные внутри них не интерполируются.

Что делать, если вы пытаетесь использовать строку в двойных кавычках ?
Как это:

ssh $USER@some_host "qsub $working_dir/some_file.txt"

При этом переменная $working_dir должна быть интерполирована на вашем конце - и ее значение отправлено через соединение ssh.

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