"init" 파일에 임시로 경로를 설정하세요.

"init" 파일에 임시로 경로를 설정하세요.

다음 내용이 포함된 "init" 파일이 있습니다.

#!/bin/sh

export PATH=$PATH:/home/me/morph_numsys/software/bin

이 bash 세션에 대해 해당 폴더의 경로를 설정하고 싶습니다. 그러나 스크립트를 실행해도 sh init여전히 경로를 인식하지 못합니다. 하지만 그냥 라고 말하면 export PATH=$PATH:/home/me/morph_numsys/software/bin잘 작동합니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

저는 우분투와 xterm을 사용하고 있습니다.

답변1

"이 bash 세션에만 해당"이라고 말하면 스크립트를 호출한 bash 세션을 의미한다고 가정합니다.

스크립트를 실행하면 새로운 쉘 환경이 생성됩니다. 따라서 변수를 내보낼 때 해당 변수를 상위 환경이 아닌 새 셸 환경으로 내보내는 것입니다. 내가 아는 한 상위 환경에 액세스할 수 있는 방법은 없습니다. 그러나 bash를 사용하고 있으므로 몇 가지 가능한 솔루션이 있습니다.

사용source

/path/to/init.sh다음과 같이 스크립트를 실행 하는 대신:source /path/to/init.sh

~에서배쉬 매뉴얼 페이지:

소스 파일 이름 [파라미터]

현재 쉘 환경에서 filename의 명령을 읽고 실행하고, filename에서 마지막으로 실행된 명령의 종료 상태를 반환합니다.

스크립트를 쉘 함수로 만들고 .bashrc에 넣습니다.

또 다른 옵션은 init를 함수로 만들고 다음과 같이 .bashrc에 넣는 것입니다.

function init {
    export PATH=$PATH:/home/me/morph_numsys/software/bin
}

그런 다음 터미널에서 실행할 수 있습니다 init.

관련 정보