나는 일반적으로 bashrc에 다음과 같은 간단한 별칭을 가지고 있습니다.
alias g="grep --color=always --exclude-dir=\*.svn\*"
하지만 지금은 GNU grep 2.5만 있는 시스템에서 작업해야 하므로 --exclude-dir
논쟁의 여지가 없습니다.
이제 작동하려면 다음과 같은 것이 필요합니다.
alias g="grep --color=always $1 $2 | grep -v .svn"
물론 인수는 별칭 끝에 추가됩니다. $1 및 $2는 큰 따옴표를 사용해도 호출될 때가 아니라 별칭이 생성될 때 구문 분석됩니다.
추가 스크립트나 기능을 사용하지 않고도 이 문제를 해결할 수 있나요?
답변1
아니요, 그럴 수 없습니다. Bash 매뉴얼에 따르면 다음과 같습니다.
`csh'처럼 대체 텍스트에 인수를 사용하는 메커니즘은 없습니다. 인수가 필요한 경우 쉘 함수를 사용해야 합니다(*쉘 함수 참고::).
함수는 이에 적합한 것이며 별칭처럼 쉽게 작성할 수 있습니다. 이 경우에는 다음과 같습니다.
function g () { grep --color=always "$1" "$2" | grep -v .svn ; }