저는 Ubuntu에서 bash를 실행 중이고 Gaussian 16이라는 계산 화학 프로그램을 실행하려고 합니다. 내 동료는 파일에 다음 줄을 추가하면 Gaussian 16을 실행할 수 있다고 말했습니다 .bashrc
.
export g16root=/g16root
source $g16root/g16/bsd/g16.profile
.bashrc
내 동료는 이 줄을 파일 에 추가하면 필요한 입력 파일이 있는 g16 <input file>
명령 을 사용하여 Gaussian 16을 실행할 수 있다고 말했습니다.<input file>
내 파일은 내 홈 디렉터리( 즉 , ) .bashrc
에 있습니다 . 위의 두 줄을 내 파일에 추가하고 시도하면 bash는 (" ") 가 무엇인지 모른다고 알려줍니다 .~
/export/home/myusername/
.bashrc
g16 <input file>
g16
g16: command not found
하지만, 만약 내가구현하다(각각) bash에서 위의 두 줄(즉, 위의 명령 export
과 source
명령)을 입력하면 bash는 g16
그것이 무엇인지 압니다. 즉, g16 <input file>
소프트웨어를 실행하고 추가로 which g16
제공됩니다 . 따라서 이것은 작동하지만 and 명령을 /g16root/g16/g16
다시 입력해야 합니다.export
source
모든(원격) 컴퓨터에 로그인한 시간입니다.
저는 bash를 처음 접하므로 양해해 주시기 바랍니다. 하지만 bash가 내 파일에서 "실행" export
하고 명령하도록 하려면 어떻게 해야 합니까?source
.bashrc
도움이 된다면 내 전체 .bashrc
파일(주석 처리된 줄 제외)은 이제 다음과 같습니다.
test -s ~/.alias && . ~/.alias || true
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export g16root=/g16root
source $g16root/g16/bsd/g16.profile
(처음 두 코드 블록이 왜 있는지 모르겠습니다.)
또한 실행이 echo $BASH_VERSION
제공 4.1.5(1)-release
되므로 실제로는 bash를 사용하고 있습니다.
답변1
ilkkachu가 말했듯 .bashrc
이 처리되지 않았습니다.로그인 쉘--오직 .profile
. (이 동작은 Ubuntu에만 해당될 수 있습니다. 확실하지 않습니다.)
.bashrc
다음 줄을 추가하여 로그인 셸이 처리되도록 유도 할 수 있었습니다 .profile
.
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi