따라서 내 별칭을 검색해 주는 별칭을 만드는 것이 아이디어입니다. 나는 꽤 많이 가지고 있습니다.
dude@gnarleybox:~$ grep alg .bash_aliases.sh
alias alg='alias | grep '
dude@gnarleybox:~$ alias | grep alg
alias alg='alias | grep '
dude@gnarleybox:~$ alg gd
grep: invalid max count
dude@gnarleybox:~$
아? 두 개의 매개변수를 얻기 위해 grep을 사용하시나요? 어떻게 이럴 수있어? 마지막에 공백 없이 이 작업도 시도했습니다.
alias alg='alias | grep'
다음 항목만 입력해야 합니다.
alg gd
...GoogleDocs를 설치하는 데 사용한 별칭을 가져옵니다.
답변1
gd
또한 별칭처럼 보이고 and 로 확장 됩니다 -m
. 표시하려면:
$ alias alg='alias | grep '
$ alias gd='-m foo'
$ alg gd
grep: invalid max count
표시되는 오류 메시지는 (maxcount) 옵션과 숫자가 아닌 인수가 주어졌을 grep
때 인쇄되는 것 입니다. -m
를 실행하면 alias | grep gd
위에 표시된 것과 일치한다는 것을 알 수 있을 것입니다.
설명된 대로 man bash
:
별칭 값의 마지막 문자가 공백이나 탭인 경우 별칭 뒤의 다음 명령 단어도 별칭 확장을 확인합니다.
따라서 별칭에서 공백을 제거하면 alg
문제도 해결됩니다.
~/.bash_aliases.sh
그리고 혹시 이 글을 읽고 있는 분이 계시나요 ? 이것기본 파일 이름확장이 없습니다 ~/.bash_aliases
. 명시적으로 소스를 지정하지 않는 한 ~/.bash_aliases.sh
무시됩니다 .
답변2
rici가 제안한 대로 별칭 정의 끝의 공백을 제거하면 문제가 해결됩니다.
그러나 별칭에 동의어나 약어가 있을 뿐만 아니라 파이프가 있는 함수 코드도 있는 경우에는 별칭 대신 함수를 정의하는 것이 좋습니다.