Я делаю remsh на сервере и читаю содержимое файла в цикле for. Файл содержит путь к каталогу, и его имя содержит переменную env.UNIX: невозможно получить значение переменной env
Содержимое файла указано ниже. ENV_VARIABLE содержит некоторый путь к каталогу.
$ENV_VARIABLE/somepath
Я запускаю команду, как показано ниже.
remsh server -l user ' . ./.profile;echo $ENV_VARIABLE for i in `cat filename do; echo $i;done'
Когда команда выше выполнена, она производит ниже выход.
VALUE_OF_ENV_VARIABLE/somepath
$ENV_VARIABLE/somepath
Почему ENV_VARIABLE чтение из файла в не заменяется это значение в то время как тот же ENV_VARIABLE заменяется его значение с «Эхо»?
Как я могу получить значение ENV_VARIABLE, когда он считывается из файла?
является ENV_VARIABLE в удаленном ./.profile? или на одном из вызывающего сервера (то есть локальном)? если удаленный: 'remsh server -l user '. ./.profile; echo "ENV_VARIABLE = $ ENV_VARIABLE"; для i в $ (имя файла cat); do echo "$ i"; сделано ". Если локально: 'remsh server -l user './.profile; echo' ENV_VARIABLE = $ ENV_VARIABLE ', для i в $ (имя файла cat), do echo \" \ $ i \ "; done" (я предполагаю, filename "и" .profile ", чтобы оба были удалены) –
Да, он определен на удаленном сервере, и я могу напечатать его значение с помощью echo $ ENV_VARIABLE, запустив сервер remsh -l user '. ./.profile;echo $ ENV_VARIABLE '. Но когда я пытаюсь напечатать его значение, читая его из файла, он дает мне ENV_VARIABLE вместо его значения. – Jitu