2011-08-05 2 views
0

사용자가 특정 디렉토리로 이동할 때 환경 변수를 만드는 스크립트를 실행하려고합니다.스크립트가있는 디렉토리로 전환 할 때 유닉스 스크립트의 실행을 트리거하는 방법

+3

"cd"가 너무 많거나 쉘을 패치하는 것보다 짧습니다. 그렇게 할 수 없습니다. – pyroscope

+0

"오버로드"할 수 있습니까 ?? 그것은 내장되어 있습니다. 별칭을 사용할 수는 있지만 매개 변수를 전달하는 방법은 무엇입니까? –

답변

0

어떻게 사용할지 예상하는 실제 사례가 있다면 도움이 될 것입니다.하지만 헤드 라인과 질문 본문을 기초로 시작하는 방법은 어떨까요?

cat specialVarSetter.bash 
#! /bin/bash 

targetDir=/path/to/special/dir 
cd $1 

if [[ $PWD == "$targetDir" ]] ; then 
    userVar1=xxxx 
    userVar2=yyyy 
fi 

#your real stuff goes after this 
runProgram 1 
runProgram 2 

를 사용하여 당신은 단지 사용자가 '디렉토리'를 입력합니다

chmod 755 specialVarSetter.bash 
specialVarSetter.bash /path/to/special/dir 

처럼, 당신은 baseDir=/path/to/special 같은 것을 추가 할 수 cd $baseDir/$1로 변경합니다. 테스트가 실행되고 변수가 설정됩니다.

또한 csh/tcsh에는 기본적으로 그러한 기능이있을 수 있으며 tcsh에 있으면 zsh에 포함될 것입니다 (어쨌든 가질 수 있음). 사용자 환경에 얼마나 많은 제어권이 있는지에 따라 다릅니다. (나는 CDPATH 또는 관련 이름이 뭔가를 생각하고 있나?, zsh 사람들, 조금 도움이 되니?)

나는 이것이 도움이되기를 바란다.

관련 문제