2009-04-30 12 views
0

Ich habe die folgende Systemvariable in .zshrcEs kann keine Systemvariable Arbeit für Handbücher

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

Ich betreibe erfolglos

zgrep -c compinit $manuals/zsh* 

I

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

Der Befehl sollte erhalten bekommen sei der gleiche wie der folgende Befehl, der funktioniert

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

Wie können Sie den obigen Befehl mit einer Systemvariablen in Zsh ausführen?

Antwort

0

Aus meinen Untersuchungen, es sieht aus wie zsh <> Substitution vor$ Substitution durchführt. Das heißt, wenn Sie die $ Variante verwenden, versucht es zuerst <> Ersetzung (nichts da) dann $ Ersetzung (was funktioniert), und Sie sind mit der Zeichenfolge, die die <> Zeichen enthält.

Wenn Sie nicht $manuals verwenden, versucht es zuerst <> Substitution und es funktioniert. Es ist eine Frage der Ordnung. Die endgültige Version unten zeigt, wie Expansion zu verschieben, so dass sie zur gleichen Zeit passieren:

Diese hier zu sehen ist:

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

> echo $manuals 
    /usr/share/man/man<1-9> 

> echo /usr/share/man/man<1-9> 
    /usr/share/man/man1 /usr/share/man/man2 /usr/share/man/man3 
    /usr/share/man/man4 /usr/share/man/man5 /usr/share/man/man6 
    /usr/share/man/man7 /usr/share/man/man8 

> echo $~manuals 
    /usr/share/man/man1 /usr/share/man/man2 /usr/share/man/man3 
    /usr/share/man/man4 /usr/share/man/man5 /usr/share/man/man6 
    /usr/share/man/man7 /usr/share/man/man8 
+0

Ich akzeptiere diesmal die Antwort von Pax wegen großer Beispiele. Vielen Dank für Ihre Antwort! –

1

Versuchen:

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

Die '~' sagt zsh zu Führen Sie die Erweiterung <0-9> bei Verwendung der Variablen aus. Auf der zsh-Referenzkarte erfahren Sie, wie Sie dies und mehr tun können.

+1

@sykora: Wissen Sie, wie Sie diese Ordner für run-help ausführen können, so dass ich die Hilfedateien durchsuchen kann, indem Sie $ compinit Esc-h eingeben? –

Verwandte Themen