变量输出的通配符

问题描述 投票:0回答:1

我有以下变量的列表:

abc1=1
abc2=2
qwerty=4
qwerty3=3
abc9=9

是否可以以某种方式输出以

abc
开头的所有变量的值?

类似通配符的东西:

printf "%s\n" "${abc*}"

shell sh
1个回答
0
投票

有点脆,但是

set | grep '^abc'

基本上做你要求的事。

set
的输出包括函数定义;函数体将缩进,因此它们与
grep
模式不匹配。如果您还想排除名称以
abc
开头的函数名称,也许只需添加
| grep -vF '()'
;或重构为稍微复杂一点的
sed
脚本:

set | sed -n '/()/d;/^abc/p'

如果您想将函数及其主体一起打印,也可以在

sed
或 Awk 中完成。

© www.soinside.com 2019 - 2024. All rights reserved.