无法使系统变量适用于手册

时间:2009-04-30 04:52:09

标签: zsh manuals system-variable

我在.zshrc中有以下系统变量

manuals='/usr/share/man/man<1-9>'

我运行不成功

zgrep -c compinit $manuals/zsh*

我得到了

zsh: no matches found: /usr/share/man/man<1-9>/zsh*

该命令应与以下命令相同

zgrep -c compinit /usr/share/man/man<1-9>/zsh*

如何在Zsh中使用系统变量运行上述命令?

2 个答案:

答案 0 :(得分:1)

尝试:

$> manuals=/usr/share/man/man<0-9>
$> zgrep -c compinit ${~manuals}/zsh*

'〜'告诉zsh在使用变量时执行<0-9>的扩展。 zsh参考卡告诉您如何执行此操作以及更多操作。

答案 1 :(得分:0)

根据我的调查,zsh在 <>替换之前执行$替换。这意味着当您使用$变体时,它首先尝试<>替换(没有任何内容),然后$替换(可行),并且您将使用包含{{ 1}}字符。

当您不使用<>时,它首先尝试$manuals替换并且它有效。这是一个有序的问题。下面的最终版本显示了如何推迟扩展,以便它们同时发生:

这些可以在这里看到:

<>