2015-02-01 3 views
1

bashrc 파일을 소싱하는 스크립트가 있는데 다른 파일을 소싱 중이므로 bashrc 파일이 소스 작업을 전달하지만 내 두 번째 파일이 전달하지 않습니다. 여기 내 fundtions입니다 :bash - 소스가 작동하지 않습니다.

function setEnv() { 
    envFile=/etc/profile.d/p4v.sh 
    echo export p4bin=$p4Dir/bin > $envFile 
    echo export P4USER='$USER' >> $envFile 
    echo export P4CONFIG=.p4settings >> $envFile 
    echo export PATH='$p4bin':'$PATH' >> $envFile 
    sleep 5 
    chmod a+x /etc/bashrc 
    PS1='$ ' 
    source /etc/bashrc 

} 

function setAutoCompletion() { 
    autoCompletionFile=$1/p4-completion.bash 
    cp $autoCompletionFile /etc/bash_completion.d/p4-completion.bash 
    chmod a+x /etc/bash_completion.d/p4-completion.bash 
    PS1='$ ' 
    source /etc/bash_completion.d/p4-completion.bash 
} 

나는이 스크립트가 완료되면, 내가 내부에 있던 소스 변수를 참조하기 위해 새로운 쉘을 열어야 해결하는 방법을 모르는 또 다른 것은 bashrc 파일. 두 가지 문제를 해결하는 방법에 대해 알고 싶습니다.

+0

이 스크립트를 어떻게 실행합니까? – Hagai

답변

0

현재 실행중인 셸에서 .bashrc 파일의 변수를 보려면 위 코드가 포함 된 파일을 소스해야합니다.

이전 응답자와 마찬가지로 위 스크립트를 어떻게 실행합니까? 그것을 실행하거나 소스를 제공합니까?

+0

실행 ... – user3502786

+0

스크립트를 실행하면 새로운/bin/sh 프로세스가 시작되고 스크립트에서 설정 한 모든 변수가 종료 될 때 해당 프로세스가 종료되고 쉘 프롬프트가 다시 표시됩니다. 스크립트를 작성하면 이미 실행중인/bin/sh의 일부로 실행되므로 변수 세트는 쉘 프로세스에서 계속 활성화됩니다. –

관련 문제