한 별칭이 다른 별칭에 영향을 줍니까?


14

내 .bash_aliases 파일에 아직 많은 별칭이 설정되어 있지 않습니다. 최근에야 그들이 얼마나 유용한 지 알게되었습니다.

파일이 너무 까다로워지기 전에 매우 간단한 질문을 통해 무언가를 명확히하고 싶습니다. 한 별칭이 다른 별칭에 영향을 주나요? 아니면 별칭이 항상 원래 명령으로 되돌아 갑니까?

예를 들어 이것을 더 명확하게 만들 수 있습니다.

ls별명을 지정했습니다 ls -lF. 하자 내가 또한 별칭 싶은 말 d에는 ls -l | grep -E "^d"않습니다 d지금 사용하는 ls -lF대신에 ls? 그렇다면 .bash_aliases 구성 파일에서 문제가됩니까?

man alias 나를 밝히지 않았다.

답변:


20

에서 별칭 (배쉬 매뉴얼의 6.6 절) :

인용되지 않은 경우 각 간단한 명령의 첫 단어는 별칭이 있는지 확인합니다. 그렇다면 해당 단어가 별칭의 텍스트로 바뀝니다.

별명을 정의 할 때가 아니라 별명 을 사용할 때 발생 합니다. 예를 들면 다음과 같습니다.

$ alias a1='a2 hello'
$ alias a2='echo'
$ a1
hello
$ unalias a2
$ a1
bash: a2: command not found

1
이 예제와 Bash 매뉴얼 링크에 감사드립니다. 매뉴얼의 인용 : "별명의 정의와 사용에 관한 규칙은 다소 혼란 스럽다 ... 거의 모든 목적에서, 쉘 함수는 별명보다 선호된다." 셸 함수를 수행하는 방법을 배우는 것이 좋습니다. :)
boehj

1
예. 별명을 사용하면 일반적인 명령에 대한 입력을 줄일 수 있지만 원격으로 복잡한 사용자 지정 함수 작성을 처리하는 것이 일반적으로 더 나은 옵션입니다.
Caleb

@Caleb @Gilles-감사합니다. BTW, ls = 'ls --color'매우 편리하다는 것을 알 수 있습니다. 이 사이트를 좋아합니다. :)
boehj

2
@boehj : 경험상, 명령 이름이나 약간의 변형을 사용하여 명령에 자동 인수를 주려면 별명을 사용하고 그렇지 않으면 함수를 사용합니다. 그래서 alias ls='ls --color', alias cp='cp -i'그러나 더 복잡한 것들을 위해 기능합니다. 특히, d인수를에 전달할 수 있도록 함수를 만들 것 ls입니다. [질투가 혼란스러워 두뇌를 고치기 위해 다시 게시 한 의견, @cjm에게 감사드립니다]
Gilles 'SO-Stop

@Gilles-자, 오늘의 과제 d는 쉘 함수 로 복제하는 방법을 스스로에게 가르치는 것 입니다.
boehj
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.