나는 그것을 정기적으로 사용하기 .bashrc
때문에 지금 이것을 가지고 있습니다 . with 와 같이 옵션으로 전달될 수 있는 다른 항목을 읽을 수 있기를 원합니다 . 내가 이걸 어떻게 할 수 있지?git status
git diff
-s
git diff
기능하나보다는별명? $#
전달된 매개변수의 수를 알 수 있다는 것은 알지만 , status
48행 뒤에 매개변수를 모두 붙여넣으려면 어떻게 해야 합니까?
42 # =========================================================
43 # Git
44 # =========================================================
45 g () {
46 case $1 in
47 "s")
48 git status
49 ;;
50 "d")
51 git diff
52 ;;
53 esac
54 }
답변1
"$@"
모든 인수는 올바르게 인용된 인수로 대체되므로 하위 명령 바로가기를 이동한 후 삭제하세요.
g () {
cmd=$1
shift
case "$cmd" in
s) git status "$@" ;;
d) git diff "$@" ;;
esac
}
git
하지만 이 작업을 수행하지 말고 대신에 위의 별칭을 설정 하는 것이 좋습니다 .
git alias s status
git alias d diff
또는 하나도 없는 경우 git-alias
(보통 git-extras
),
git config --global alias.s status
git config --global alias.d diff
(한 번만 수행하면 별칭이 에 저장됩니다 ~/.gitconfig
.)
그런 다음 셸에서
alias g=git
g s
매개변수를 포함하여 예상한 대로 작동하는 것을 확인할 수 있습니다 .
답변2
예를 들어
#!/bin/bash
g () {
for arg in "$@"; do echo "$arg"; done
}
g 1 2 3 4
스크립트 실행
$ ./git.sh
1
2
3
4