私は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
にあります。上記の2行を私のファイルに追加しようとすると、bashは( " ")が何であるかわからないことを伝えます。~
/export/home/myusername/
.bashrc
g16 <input file>
g16
g16: command not found
しかし、、私が実装する(それぞれ)bashで上記の2行(つまり、上記のコマンド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
(最初の2つのコードブロックがなぜなのかわかりません。)
また、実行が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