Создайте несколько псевдонимов оболочки сразу

Я хочу вставить в псевдоним различные возможные варианты написания, например, cat команда. Я могу сделать это с помощью некоторого символа для 'или' или это должно быть на новой строке?

alias at|cart|cst '/bin/cat'
8
задан 16 May 2018 в 00:57

2 ответа

Справка для alias указывает, что это может присвоить несколько псевдонимов сразу:

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.

Таким образом, можно использовать расширение фигурной скобки для генерации name=value пары:

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

Так:

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

Тем не менее загляните к zsh, который имеет встроенное исправление опечатки (который не помог бы для at, но это помогло бы для других):

% 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

Если Вы нажимаете y когда оболочка спрашивает Вас, если Вы захотите исправить слово, то она будет исправлена. Если Вы нажимаете n, это будет оставлено в покое. Нажатие a прерывает команду и нажатие e проводит линию для редактирования снова, в случае, если Вы соглашаетесь, что слово по буквам произнесено неправильно, но Вам не нравится исправление.

17
ответ дан 23 November 2019 в 05:22

Я не думаю, что можно присвоить несколько псевдонимов сразу.
Но Вы могли циклично выполниться через список как это:

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

Удостоверьтесь, что псевдонимы уже не используются другими программами (как at в Вашем примере).

7
ответ дан 23 November 2019 в 05:22

Другие вопросы по тегам:

Похожие вопросы: