it-swarm.com.de

Erstellen Sie mehrere Shell-Aliase gleichzeitig

Ich möchte verschiedene mögliche Varianten der Schreibweise in einen Alias ​​einfügen, z. B. den Befehl cat. Kann ich ein Symbol für 'oder' verwenden oder sollte es in einer neuen Zeile stehen?

alias at|cart|cst '/bin/cat'
8
Josef Klimuk

Die Hilfe für alias gibt an, dass mehrere Aliase gleichzeitig zugewiesen werden können:

alias: alias [-p] [name[=value] ... ]
    Define or display aliases.

    Without arguments, `alias' prints the list of aliases in the reusable
    form `alias NAME=VALUE' on standard output.

    Otherwise, an alias is defined for each NAME whose VALUE is given.
    A trailing space in VALUE causes the next Word to be checked for
    alias substitution when the alias is expanded.

Sie können also die Klammererweiterung verwenden, um die name=value -Paare zu generieren:

alias {at,cart,cst}='/bin/cat'

Damit:

$ alias {at,cart,cst}='/bin/cat'
$ type at cart cst
at is aliased to `/bin/cat'
cart is aliased to `/bin/cat'
cst is aliased to `/bin/cat'

Das heißt, schauen Sie in zsh, das eingebaute Tippfehler-Korrektur hat (was für at nicht helfen würde, aber es würde für die anderen helfen):

% setopt correct
% sl
zsh: correct `sl' to `ls' [nyae]? y
% setopt correctall
% ls x.v11r4
zsh: correct `x.v11r4' to `X.V11R4' [nyae]? n
/usr/princton/src/x.v11r4 not found
% ls /etc/paswd
zsh: correct to `/etc/paswd' to `/etc/passwd' [nyae]? y
/etc/passwd

Wenn Sie y drücken, wenn die Shell Sie fragt, ob Sie ein Wort korrigieren möchten, wird es korrigiert. Wenn Sie n drücken, wird es in Ruhe gelassen. Wenn Sie a drücken, wird der Befehl abgebrochen, und wenn Sie e drücken, wird die Zeile erneut zum Bearbeiten angezeigt, falls Sie zustimmen, dass das Wort falsch geschrieben ist, die Korrektur jedoch nicht gefällt.

17
muru

Ich glaube nicht, dass Sie mehrere Aliase gleichzeitig zuweisen können.
Aber Sie könnten eine Liste wie diese durchlaufen:

for a in cart xat vat xst cst vst dog; do alias "$a"='/bin/cat'; done

Stellen Sie sicher, dass die Aliase nicht bereits von anderen Programmen verwendet werden (wie in Ihrem Beispiel at).

7
pLumo