KornShell(ksh)存儲在AIX(高級交互式執行)計算機上的用戶定義變量(UDV)在哪裏?KSH用戶定義變量存儲在UNIX機器上?
示例命令:
@:/dir #variable=fooValue
@:/dir #echo $variable
fooValue
那麼,有沒有用文字 「fooValue」 的AIX服務器上的文件?該值是否存儲在內存中?無論如何,變量可以被嗅出嗎?
KornShell(ksh)存儲在AIX(高級交互式執行)計算機上的用戶定義變量(UDV)在哪裏?KSH用戶定義變量存儲在UNIX機器上?
示例命令:
@:/dir #variable=fooValue
@:/dir #echo $variable
fooValue
那麼,有沒有用文字 「fooValue」 的AIX服務器上的文件?該值是否存儲在內存中?無論如何,變量可以被嗅出嗎?
殼是一個正在運行的進程,它有自己的一小塊內存,它被操作系統處理。
在定義和設置變量時,shell將其名稱和值 存儲在其自己的進程內存中。
當shell進程退出時,該內存被釋放回操作系統,並且變量及其值將丟失。
它當然不存儲在磁盤上。您可以訪問使用變量存儲的內存區域
extern char** environ;
請參閱man 5 environ
。
但較少更高級別的方法是通過
char * getenv(char * varname)
返回你單一環境變量的值(其應該是environ
指針列表的一部分)看man 3 getenv
變量保存在shell的RAM中而不是文件系統中。 –
@MarkSetchell您是否有參考資料(例如URL)說明這一點。如果是這樣,那就是我正在尋找的答案。 – javaPlease42
不,我沒有。 AFAIK就是所有Unix shell的工作方式。 –