当在 shell 程序中输入echo ${!BASH*}
时,我得到了所有以字符串“BASH”开头的env var:
BASH BASHOPTS BASHPID BASH_ALIASES BASH_ARGC BASH_ARGV BASH_CMDS BASH_COMMAND BASH_LINENO BASH_SOURCE BASH_SUBSHELL BASH_VERSINFO BASH_VERSION
BASH手册页非常谨慎地介绍了称为shell parameter (indirect) expansion的功能。此信息(此特定通配模式的语法)必须在某处,但我找不到它。但是大部分
哦,什么会令人高兴
最佳答案
据我所知,没有内置的方法可以在名称末尾进行匹配来进行间接名称扩展。
这是一个您可以执行所需操作的命令:
$ compgen -v | grep -E "HOME$"
这将匹配名称以HOME结尾的每个变量。
通过更改grep部分,您可以匹配变量名称的任何部分。
compgen
是bash内置函数,旨在用于完成脚本。 compgen -v
将列出所有变量名称。 compgen -v BASH
将列出与echo ${!BASH*}
相同的变量,但每行列出一个。