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

Where are Ksh User-Defined Variables stored on UNIX machine?

KornShell (ksh) 用户定义变量 (UDV) 存储在 AIX(高级交互式执行)机器上的什么位置?

示例命令:

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

那么AIX服务器上有没有文本为"fooValue"的文件?该值是否存储在内存中?无论如何都能嗅出变量?

它肯定没有存储在磁盘上。您可以使用

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

参见 man 5 environ

但不太高级的方法是通过

char * getenv(char * varname)

哪个 returns 你是单个环境变量的值(应该是 environ 指针列表的一部分)参见 man 3 getenv

shell 是一个 运行 进程,它有自己的一小块内存,由操作系统处理。

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

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