2017-02-07 10 views
0

スクリプトを使用してPATHにフォルダを追加しようとしていますが、実行後にPATHは変更されません。 .bash_profileに同じ行を追加すると、PATHに正しいフォルダがあることを確認してください。

PATH環境変数は.bash_profileでしか変更できないという規則がありますか?

#!/bin/bash 
# add anaconda to path 
if [ -d $HOME/anaconda3/bin ] ; then 
    echo "Changing python to 3.5 :" 
    python --version 
    PATH="$PATH:$HOME/anaconda3/bin" 
    python --version 
fi 

私はこれをしたい理由は、時々、PythonのV2.7(デフォルト)を使用し、時々(スクリプトによってデフォルト行われることになる)のpython V3.5を使用することです。 助けてくれてありがとう!

答えて

0

子プロセスを実行することによって、現在のプロセスの環境を変更することはできません。 PATHへの変更を維持するには、スクリプトを実行する代わりに、そのソースを指定する必要があります。

> source enableAnaconda 

あなた.bash_profileで代わりに関数を定義した場合、関数はすべてのbashセッションで定義されるであろうと、個別のコマンドとして呼び出すことができます。 pythonは最初からパスディレクトリ内を探したされるように

enableAnaconda() { 
    if [ -d "$HOME/anaconda3/bin" ] ; then 
    echo "Changing python to 3.5 :" 
    PATH="$HOME/anaconda3/bin:$PATH" 
    python --version 
    fi 
} 

あなたは、あなたのPATHプリペンド新しいディレクトリにする必要があります。

+0

これは完全に感謝しました!また、追加情報をありがとう、私はこれを知らなかった:) – agesav

関連する問題