2015-06-25 63 views
0

KornShell(ksh)存儲在AIX(高級交互式執行)計算機上的用戶定義變量(UDV)在哪裏?KSH用戶定義變量存儲在UNIX機器上?

示例命令:

@:/dir #variable=fooValue 
@:/dir #echo $variable 
fooValue 

那麼,有沒有用文字 「fooValue」 的AIX服務器上的文件?該值是否存儲在內存中?無論如何,變量可以被嗅出嗎?

+1

變量保存在shell的RAM中而不是文件系統中。 –

+0

@MarkSetchell您是否有參考資料(例如URL)說明這一點。如果是這樣,那就是我正在尋找的答案。 – javaPlease42

+1

不,我沒有。 AFAIK就是所有Unix shell的工作方式。 –

回答

1

殼是一個正在運行的進程,它有自己的一小塊內存,它被操作系統處理。

在定義和設置變量時,shell將其名稱和值 存儲在其自己的進程內存中。

當shell進程退出時,該內存被釋放回操作系統,並且變量及其值將丟失。

0

它當然不存儲在磁盤上。您可以訪問使用變量存儲的內存區域

extern char** environ; 

請參閱man 5 environ

但較少更高級別的方法是通過

char * getenv(char * varname) 

返回你單一環境變量的值(其應該是environ指針列表的一部分)看man 3 getenv