我正在執行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;回聲「ENV_VARIABLE = $ ENV_VARIABLE」;爲我在$(貓的文件名);做回聲「$我」;完成'。如果是本地的話:'remsh server -l user「./.profile; echo'ENV_VARIABLE = $ ENV_VARIABLE';對於我在$(cat文件名)中執行echo \」\ $ i \「; done」'(我假設「文件名「和」.profile「都是遠程的) –
是的,它是在遠程服務器上定義的,我可以通過運行remsh服務器-l用戶來使用echo $ ENV_VARIABLE打印它的值。 ./.profile;echo $ ENV_VARIABLE'。但是當我試圖通過從文件中讀取來打印它的值時,它給了我ENV_VARIABLE而不是它的值。 – Jitu