Створіть кілька псевдонімів оболонок одночасно


8

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

alias at|cart|cst '/bin/cat'

7
Нагадує мені один псевдонім:alias kk='ll'
pLumo

14
Я б не рекомендував використовувати його atяк псевдонім cat. Є фактична команда atдля планування матеріалів: askubuntu.com/a/339301/295286
Сергій Колодяжний

Відповіді:


17

Довідка 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вводить рядок для редагування, якщо ви погоджуєтесь, що слово написано неправильно, але ви не любите виправлення.


7

Я не думаю, що ви можете призначити кілька псевдонімів одночасно.
Але ви можете переглядати такий список:

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

Переконайтесь, що псевдоніми вже не використовуються іншими програмами (наприклад, atу вашому прикладі).


Дякую за відповідь, це працює добре. У мене одна з моїх машин Linux з tsch за замовчуванням. Я спробував це: foreach x (cst cart); псевдонім $ x = '/ bin / cat'; кінець.
Йозеф Клімук

2
@JosefKlimuk: Здається, що варто було б отримати власну відповідь. :-)
Девід Фоерстер

@David Foerster, чи варто задавати це як самостійне запитання?
Йозеф Клімук

2
@JosefKlimuk: Ні. Я маю на увазі, що ви повинні написати належну відповідь на це питання, грунтуючись на попередньому коментарі.
Девід Фоерстер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.