如何打印所有非环境变量?
这些是我在 shell 启动时添加的所有变量,例如:
read abc
123
# echo ${abc} => 123
或者
xyz='123'
# echo ${xyz} => 123
我想把它们全部打印出来,想知道内存中添加了什么,这样我就可以把它清理掉。
如何打印所有非环境变量?
这些是我在 shell 启动时添加的所有变量,例如:
read abc
123
# echo ${abc} => 123
或者
xyz='123'
# echo ${xyz} => 123
我想把它们全部打印出来,想知道内存中添加了什么,这样我就可以把它清理掉。
如果您使用 Bash,此命令将列出所有未由子进程继承且不属于默认设置的 shell 变量的名称:
这会生成当前 shell
set
中所有变量名的列表(diff
带最后一次剪切和第一个 grep),并修剪掉子进程没有的一些特定于 Bash 的默认变量,因为它不是面向用户的 shell。set -o posix
只set
列出变量而不列出函数。它将忽略继承的环境变量和您明确标记为导出的变量。
换
bash
你的壳。您还需要更改最后一个被忽略的变量列表grep
,并且可能会丢失set -o posix
。如果您的 shell 没有进程替换,您将需要使用临时文件,或者使用特定于平台的文件描述符访问(如/dev/fd
)。另一方面,如果您只想清除自己的局部变量和函数,那么
会产生这种效果(同时还会重新读取一些配置文件并可能丢失对 shell 选项的本地更改)。