「init」ファイルがあります。
#!/bin/sh
export PATH=$PATH:/home/me/morph_numsys/software/bin
これにより、このbashセッションのみのそのフォルダーへのパスを設定したいと思います。ただし、スクリプトsh init
を実行しても、パスが認識されません。ただし、export PATH=$PATH:/home/me/morph_numsys/software/bin
とだけ言うと、問題なく動作します。どうすればこれを行うことができますか?
私はubuntuとxtermを使用しています。
「このbashセッションのみ」と言うときは、スクリプトを呼び出しているbashセッションを意味していると思います。
スクリプトを実行すると、新しいシェル環境が取得されます。したがって、変数をエクスポートするときは、親環境ではなく、新しいシェル環境に変数をエクスポートします。私の知る限り、親環境にアクセスする方法はありません。ただし、bashを使用しているため、いくつかの解決策がある可能性があります。
source
を使用します
次のようにスクリプトを実行するのではなく:/path/to/init.sh
行う source /path/to/init.sh
bashのmanページ から:
ソースファイル名[引数]
現在のシェル環境でfilenameからコマンドを読み取って実行し、filenameから最後に実行されたコマンドの終了ステータスを返します。
スクリプトをシェル関数にして.bashrcに入れます
別のオプションは、initを関数にして、次のように.bashrcに配置することです。
function init {
export PATH=$PATH:/home/me/morph_numsys/software/bin
}
次に、ターミナルからinit
を実行できます。