我有以下变量的列表:
abc1=1
abc2=2
qwerty=4
qwerty3=3
abc9=9
是否可以以某种方式输出以
abc
开头的所有变量的值?
类似通配符的东西:
printf "%s\n" "${abc*}"
有点脆,但是
set | grep '^abc'
会基本上做你要求的事。
set
的输出包括函数定义;函数体将缩进,因此它们与 grep
模式不匹配。如果您还想排除名称以 abc
开头的函数名称,也许只需添加 | grep -vF '()'
;或重构为稍微复杂一点的 sed
脚本:
set | sed -n '/()/d;/^abc/p'
如果您想将函数及其主体一起打印,也可以在
sed
或 Awk 中完成。