Установите переменные среды, используя SSH - PullRequest
1 голос
/ 24 мая 2010

Я пытаюсь выполнить команду unix, используя SSH из cygwin. Мой набор команд будет переходить в определенный каталог, источник определенного файла. Основываясь на переменных из этого файла, я бы попытался запустить приложение. Но почему-то переменные не получают, так как echo не возвращает никаких значений. Может ли кто-нибудь дать мне знать, что мне здесь не хватает

Содержимое файла переменных среды (myenv) равно

export TEST_DATA="DATA1:DATA2"

и я выполняю следующую команду

$ ssh kunal@kspace "ls; cd /disk1/kunal/env; . ./myenv; echo $TEST_DATA; "

Ответы [ 2 ]

3 голосов
/ 24 мая 2010

Двойные кавычки не препятствуют расширению. Вместо этого используйте одинарные кавычки.

То есть переменная расширяется на вашей стороне, а не на сервере, к которому вы используете SSH.

1 голос
/ 24 мая 2010

Поскольку $TEST_DATA в двойных кавычках, его значение интерполируется вашей локальной оболочкой (той, которую вы назвали ssh in). Если вы используете одинарные кавычки, он будет проходить через литерал $TEST_DATA как часть команды ssh, выполняемой на дальней стороне.

...