Я пытаюсь передать переменную посредством соединения SSH, как это:
working_dir="/home/user/some_dir/"
ssh $USER@some_host 'qsub $working_dir/some_file.txt'
Само соединение устанавливается, но этот код дает мне следующую ошибку:
working_dir: Undefined variable.
Это могло быть объяснено тем, что удаленная машина не имеет переменной $working_dir
так как это было определено локально.
Существует ли способ получить значение в команде локально?
Попробуйте использовать двойные кавычки, чтобы переменная оценивалась локально:
ssh $ USER @ some_host "qsub $ working_dir / some_file.txt"
Вы используете строку в одинарных кавычках - и я полагаю, что переменные не интерполируются внутри них.
Что делать, если вы попробуете использовать строку в двойных кавычках ?
Вот так:
ssh $USER@some_host "qsub $working_dir/some_file.txt"
При этом следует интерполировать переменную $ working_dir
с вашей стороны - и его значение, отправленное через соединение ssh.