在UNIX机器上存储Ksh用户定义变量的位置?

时间:2015-06-25 16:00:18

标签: variables unix memory ksh

在AIX(Advanced Interactive eXecutive)机器上存储的KornShell(ksh)用户定义变量(UDV)在哪里?

示例命令:

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

AIX服务器上是否有文件中带有“fooValue”的文件?值是存储在内存中的吗?无论如何都可以嗅出变量吗?

2 个答案:

答案 0 :(得分:1)

shell是一个正在运行的进程,它有一小部分内存,它由操作系统处理。

在定义和设置变量时,shell会存储它们的名称和值 在自己的进程内存中。

当shell进程退出时,该内存将被释放回操作系统,并且变量及其值将丢失。

答案 1 :(得分:0)

它当然不会存储在磁盘上。您可以使用

访问存储变量的内存区域
extern char** environ; 

请参阅man 5 environ

但是较低级别的方式是通过

char * getenv(char * varname)

返回单个环境变量的值(它应该是environ指针列表的一部分)请参阅man 3 getenv