web-dev-qa-db-fra.com

Créer plusieurs alias de shell à la fois

Je souhaite insérer dans un alias différentes variantes possibles de l'orthographe, par exemple, la commande catname__. Puis-je le faire en utilisant un symbole pour "ou" ou devrait-il être sur une nouvelle ligne?

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

L'aide de aliasindique qu'il peut attribuer plusieurs alias à la fois:

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.

Vous pouvez donc utiliser le développement d'accolade pour générer les paires name=value:

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

Alors:

$ 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'

Cela dit, regardez dans zsh, qui a correction typo intégrée (qui n'aiderait pas atname__, mais qui aiderait les autres):

% 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

Si vous appuyez sur ylorsque le shell vous demande si vous souhaitez corriger un mot, celui-ci sera corrigé. Si vous appuyez sur nname__, il sera laissé seul. Si vous appuyez sur aname__, la commande est abandonnée. Si vous appuyez sur ename__, la ligne est modifiée, si vous acceptez que le mot est mal orthographié mais que vous n'aimez pas la correction.

17
muru

Je ne pense pas que vous puissiez attribuer plusieurs alias à la fois.
Mais vous pouvez parcourir une liste comme celle-ci:

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

Assurez-vous que les alias ne sont pas déjà utilisés par d'autres programmes (comme at dans votre exemple).

7
pLumo