한 번에 여러 개의 쉘 별명 작성


8

cat명령 과 같이 철자가 가능한 다른 변형을 별칭에 삽입하고 싶습니다 . '또는'에 대한 기호를 사용하여 수행 할 수 있습니까, 아니면 새 줄에 있어야합니까?

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

7
내가 가진 하나의 별칭을 생각 나게합니다.alias kk='ll'
pLumo

14
at대한 별칭으로 사용하지 않는 것이 좋습니다 cat. 실제 at일정 예약을위한 명령이 있습니다 : askubuntu.com/a/339301/295286
Sergiy Kolodyazhnyy

답변:


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예 와 같이) 에서 별명을 사용하고 있지 않은지 확인하십시오 .


대답에 감사드립니다. 기본적으로 tsch를 사용하는 Linux 시스템 중 하나가 있습니다. 나는 이것을 시도했다 : foreach x (cst cart); alias $ x = '/ bin / cat'; end.
Josef Klimuk

2
@JosefKlimuk : 자체 답변의 가치가있는 것 같습니다. :-)
David Foerster 10

@David Foerster, 독립 질문으로해야합니까?
Josef Klimuk

2
@JosefKlimuk : 아니요 . 이전 의견을 바탕 으로이 질문에 대한 정답을 작성해야합니다 .
David Foerster
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.