「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いきます。これを行う方法についてのアイデアはありますか?

私はUbuntuと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

おすすめ記事