답변:
당신이 요구하는 것을 완전히 확신하지는 못하지만, 별칭은 별칭에있는 것으로 확장됩니다. 별명이 두 개인 경우 다른 명령, 별명까지 추가 할 수 있습니다.
alias "foo=cd /path/to/foo; go"
alias "foo2=cd /path/to/foo2; go"
다른 상황에서는 기능을 지정할 수 있습니다. .bashrc
function go ()
{
if [ "$PWD" == "/path/to/foo" ]; then
cmd1
elif [ "$PWD" == "/path/to/go" ]; then
cmd2
fi;
}
더 많은 선택 사항이있는 경우 케이스 구조를 더 잘 사용할 수 있습니다.
나는 당신이 매우 "디렉토리 지향적"이라는 느낌을 얻었고,이 경우 이것은 당신의 정신을 더 잘 맞출 수 있습니다.
(그러나 솔직히 말해서 이것이 나쁜 생각이라고 생각합니다. 명령을 전역 적으로 사용하고 싶습니다.)
에 .bashrc
넣어, alias go="./.cmd"
(다음 source ~/.bashrc
).
그런 다음, 이러한 각 디렉토리에,라는 스크립트 넣고 .cmd
다음을, chmod +x .cmd
그럼 그냥, go
당신의 일을.
touch .TESTNO; echo 2 > .TESTNO
. 각 디렉토리에 파일 ( )을 넣은 다음 함수에서 해당 파일을 찾고 .TESTNO 파일의 테스트 번호에 따라 분기하십시오. 포함합니다. 전혀 어려운 것은 아니지만 아마도 이것에 대한 별칭을 사용할 수 없습니다. 기능을 사용해야합니다.
나는 그것을 달성하는 프로젝트를 진행하고 있습니다. 확인하십시오 : localalias .
데모는 다음과 같습니다.
충분히 웃긴, 실제로 go
데모에서 예제로 사용 했습니다. 나는 디렉토리 전환 (데모에 대해 바꿔야 할 것)을 보여주지 않았지만 la
명령을 가진 기능 은 실제로 정의 된 디렉토리에 로컬입니다.
.bashrc에 다음 함수를 추가하면
function cd () {
builtin cd "$@" && [[ -f .aliases ]] && . .aliases
return 0
}
.aliases 파일이있는 디렉토리로 cd 할 때마다 소스가됩니다.
다른 사람이 컴퓨터에서 파일을 만들 수있는 경우 보안에주의하십시오.
이 트릭을 사용하면 별칭이 제거되지 않지만 함수에서 원하는만큼 많은 코드를 작성할 수 있습니다.
ondir 은이 트릭을 사용하며 많은 종과 휘파람을 가지고 있습니다.
.bashrc
. cron
예를 들어 에는 작동하지 않습니다 .