1

У меня есть две машины, A и B. Мне нужно выполнить скрипт, который находится в B с помощью SSHing там из A.

Для запуска скрипта мне также необходимо экспортировать переменную. Если я просто SSH и экспортирую переменную, а затем снова попробую в SSH и выполню скрипт, переменная больше не будет доступна.

Есть ли способ экспортировать переменную и сделать ее доступной в одном сеансе со сценарием?

Я надеялся на что-то вроде этого (но это не работает):

ssh root@B export PATH=$PATH:/add/stuff/here && runScript.sh

Даже если я сделаю следующее, путь не обновится:

ssh root@B export PATH=$PATH:/add/stuff/here && echo $PATH

1 ответ1

2

Вы немного не правы, передавая третий аргумент. В предоставленной вами команде вы передаете инструкции как много аргументов, и, кроме того, вы echo локальный $PATH . Вы должны передать всю команду как один аргумент в одинарных кавычках.

Вместо

ssh root@B export PATH=$PATH:/add/stuff/here && echo $PATH

Который:

(ssh + root@B + export + PATH=...) && (echo + $PATH)

Ты должен сделать:

ssh root@B 'export PATH="$PATH:/add/stuff/here" && echo $PATH'

Который:

ssh + root@B + '(export + PATH=..) && (echo $PATH)'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .