我有一個tcl文件並在該文件內定義了我的環境變量。像下面的東西如何讀取shell文件中的環境變量
set env(ET_PINASSIGN_SCRIPT) $ET_PINASSIGN_SCRIPT
其中$ET_PINASSIGN_SCRIPT
變量將有一個用戶傳入的輸入值。現在我需要在shell文件中讀取這個env變量(#!/bin/ksh
)。這是我正在嘗試和不工作
$env ET_PINASSIGN_SCRIPT .
有什麼建議嗎? 謝謝
我有一個tcl文件並在該文件內定義了我的環境變量。像下面的東西如何讀取shell文件中的環境變量
set env(ET_PINASSIGN_SCRIPT) $ET_PINASSIGN_SCRIPT
其中$ET_PINASSIGN_SCRIPT
變量將有一個用戶傳入的輸入值。現在我需要在shell文件中讀取這個env變量(#!/bin/ksh
)。這是我正在嘗試和不工作
$env ET_PINASSIGN_SCRIPT .
有什麼建議嗎? 謝謝
我知道這是不可能的。正在運行的程序,例如。你的腳本,收到一個重複的環境,並且可以修改它。但是當程序停止運行時,它會隨着它的環境和變化而消失。
有幾個直接的方法來溝通「從死亡」過程。您可以創建一個臨時文件,或從退出代碼返回簡單的整數。
另一種方式,是對的方式,它們共享相同的環境中同時運行其他程序,對環境
更多信息:
http://en.wikipedia.org/wiki/Environment_variable
編輯:我覺得我沒不夠清楚:我只想指出,修改其他程序環境的編程是'極端'(即危險)編程。所有類型的技巧都可以完成,這會對計算機的使用產生持久的影響。
最簡單的方法是使Tcl的代碼編寫一個shell腳本設置變量到標準輸出(帶有puts
),並然後執行:
eval `tclsh yourscript.tcl`
在你的shell。
Tcl的代碼可能會是這樣的:
puts "ET_PINASSIGN_SCRIPT='$ET_PINASSIGN_SCRIPT'"
除非你將不必擔心任何嵌入'
字符,所以可能會做......
puts "ET_PINASSIGN_SCRIPT='[string map {' '\\''} $ET_PINASSIGN_SCRIPT]'"