.bash_profile이 초기 명령 프롬프트 전에 내 쉘을 구성하는 것과 같은 방식으로 .bashrc가 모든 새 터미널에 대해 실행되는 것과 유사하게 다른 디렉토리로 이동할 때 동등한 권한을 가질 수 있습니까?다른 디렉토리로 이동할 때 .bashrc를 사용할 수 있습니까?
env 변수를 설정하고 별칭 등을 설정하는 이상적인 bash 함수 ... 특정 디렉토리를 입력 할 때만?
.bash_profile이 초기 명령 프롬프트 전에 내 쉘을 구성하는 것과 같은 방식으로 .bashrc가 모든 새 터미널에 대해 실행되는 것과 유사하게 다른 디렉토리로 이동할 때 동등한 권한을 가질 수 있습니까?다른 디렉토리로 이동할 때 .bashrc를 사용할 수 있습니까?
env 변수를 설정하고 별칭 등을 설정하는 이상적인 bash 함수 ... 특정 디렉토리를 입력 할 때만?
cd를 기능화하고 특정 디렉토리를 입력하면이를 감지하도록 할 수 있습니다. 이 스크립트가 프로젝트 작업 관련되지 않은 어떤 이유로 그 디렉토리를 입력해도 실행됩니다 의미하기 때문에
cd() {
builtin cd "[email protected]"
case $PWD in
/some/directory) . ./profilefile;;
esac
}
나는이 방법을 사용하지 않는 것이 좋습니다. 필자는 프로젝트 디렉토리를 변경하고 설정 스크립트를 제공하는 특정 기능을 갖는 것이 좋습니다.
myproj() {
cd /some/directory && . ./profilefile
}
내가 설명하는 Bash 기능을 알지 못합니다. 그러나 당신은 아마 CD
alias cd='echo Yooo ; cd'
이상에 별칭 (또는 함수)를 생성하여 속일 수있는 대화 형 세션의
_cd() { if [ "$1" == 'toto' ]; then export TOTO=1; fi ; cd "$1"; }
alias cd="_cd"
(별명은 ... 무한 루프를 방지하는 것이 중요하다) , pgl은 올바른 아이디어를 가졌습니다. PROMPT_COMMAND
을 사용한 예제는 다음과 같습니다 :
$ cat foo
set_environment() {
case "$PWD/" in
/tmp/*)
alias whatshere='echo "Only junk"'
;;
/etc/*)
alias whatshere='echo "Config files: " *'
;;
*)
unalias whatshere 2> /dev/null
esac
}
PROMPT_COMMAND='set_environment'
$ source foo
$ cd ~
$ whatshere
bash: whatshere: command not found
$ cd /tmp
$ whatshere
Only junk
$ pushd /etc/apache2 # Also works when not using cd
/etc/apache2 /tmp
$ whatshere
Config files: apache2.conf conf.d envvars magic (...)
'$ PROMPT_COMMAND' 환경 변수를 살펴보십시오. – pgl
기술적으로'.bashrc'는 새로운 터미널 창에 의해 실행되는 가장 일반적인 명령 인 새로운 대화식 쉘마다 실행됩니다. '.bash_profile'은 새로운 * login * 셸마다 실행됩니다. 일부 셸 환경 (Mac OS X는 저명한 예제)에서는 기본적으로 새로운 터미널 창마다 발생합니다. – chepner