【发布时间】:2019-11-23 14:13:45
【问题描述】:
在bash 中,有一个参数扩展来生成与给定前缀匹配的变量的名称。例如:
$ foo1=a foo2=b four=4
$ echo "${!foo@}"
foo1 foo2
zsh 中是否有等价物?我知道(P)参数扩展标志相当于bash间接扩展${!foo}:
# bash
$ foo=bar bar=3
$ echo ${!foo}
3
# zsh
% foo=bar bar=3
% echo ${(P)foo}
3
但据我所知,(P) 也不处理前缀匹配。
% echo "${(P}foo@}"
zsh: bad substitution
似乎没有任何方法可以对参数 name 执行任何类型的通配,只能在参数的扩展 上执行。
(这似乎是解决“Use wildcard expansion to echo all variables in zsh”的必要前提,尽管我可能会误会。)
【问题讨论】:
标签: zsh