在bash中
echo ${!X*}
将打印名称以"X"开头的变量的所有名称.
是否可以使用任意模式获得相同的结果,例如获取名称在任何位置包含"X"的变量的所有名称?
使用builtin命令compgen:
compgen -A variable | grep X
这应该这样做:
env | grep ".*X.*"
编辑:抱歉,这也在值中查找X. 此版本仅在var名称中查找X.
env | awk -F "=" '{print $1}' | grep ".*X.*"
正如Paul在评论中指出的那样,如果你也在寻找局部变量,那么需要用set替换env:
set | awk -F "=" '{print $1}' | grep ".*X.*"