Передающая переменная через ssh не работает

Я пытаюсь передать переменную посредством соединения SSH, как это:

working_dir="/home/user/some_dir/"

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

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

working_dir: Undefined variable.

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

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

6
задан meagar 11 August 2011 в 13:14
поделиться

2 ответа

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

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

14
ответ дан 8 December 2019 в 13:45
поделиться

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

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

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

При этом следует интерполировать переменную $ working_dir с вашей стороны - и его значение, отправленное через соединение ssh.

3
ответ дан 8 December 2019 в 13:45
поделиться
Другие вопросы по тегам:

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