变量输出的通配符

发布于 2025-01-19 08:27:02 字数 171 浏览 0 评论 0原文

我有以下变量的列表:

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

是否可以以某种方式输出以 abc 开头的所有变量的值?

类似通配符的东西: printf "%s\n" "${abc*}"

I have a list of the following variables:

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

Is it possible somehow to output the value of all variables that begin with abc?

Something like wildcard: printf "%s\n" "${abc*}"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷心人i 2025-01-26 08:27:02

这有点脆弱,但

set | grep '^abc'

基本上会做您问的事情。

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

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

如果您想打印功能及其身体,则可能也可以在sed或awk中完成。

It is somewhat brittle, but

set | grep '^abc'

will basically do what you ask.

The output from set includes function definitions; the function bodies will be indented, so they won't match the grep pattern. If you also want to exclude the names of functions whose names begin with abc, maybe simply add | grep -vF '()'; or refactor to a slightly more complex sed script:

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

If you wanted to print functions along with their bodies, that too could probably done in sed or Awk.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文