Я хочу вставить в псевдоним различные возможные варианты написания, например, cat
команда. Я могу сделать это с помощью некоторого символа для 'или' или это должно быть на новой строке?
alias at|cart|cst '/bin/cat'
Справка для 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
проводит линию для редактирования снова, в случае, если Вы соглашаетесь, что слово по буквам произнесено неправильно, но Вам не нравится исправление.
Я не думаю, что можно присвоить несколько псевдонимов сразу.
Но Вы могли циклично выполниться через список как это:
for a in cart xat vat xst cst vst dog; do alias "$a"='/bin/cat'; done
Удостоверьтесь, что псевдонимы уже не используются другими программами (как at
в Вашем примере).