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 进程退出时,该内存被释放回操作系统,变量及其值将丢失。
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 进程退出时,该内存被释放回操作系统,变量及其值将丢失。