ディレクトリ下のコマンドを対話型の使用にのみ使用しますか?

ディレクトリ下のコマンドを対話型の使用にのみ使用しますか?

私はbin/の下に を持っています$HOME。これには、一般的なコマンドの拡張バージョンがいくつか含まれています。したがって、これらのコマンドはスクリプトではなく、対話型の使用でのみ使用したいです。

私が追加できる最善のことは

for f in ~/bin/*
do
    alias "$(basename $f)"="$f"
done

私に~/.bash_profile?それとも別の解決策がありますか?

答え1

次のような行を に追加することもできます.bashrc。これにより、PATH対話型シェルを使用している場合にのみ が設定されます。

if [ "$PS1" ]
then
    export PATH=~/bin:$PATH
fi

答え2

環境モジュールを使用して、必要なパスを設定するモジュールを手動で有効化(ロード)することができます。

module load homebin

ホームビンモジュールは次のようになります

#%Module1.0
prepend-path PATH ~/bin

http://modules.sourceforge.net

答え3

それは、どのシェル、そして(残念ながら)どのシステムを使用しているかによって異なります。たとえば、Bashは、対話型シェルとして使用するか非対話型シェルとして使用するかに応じて、異なる起動ファイルを使用します。bash マニュアル

export PATH=$HOME/bin:$PATH原則として、ファイルに追加することができ~/.bashrc、その後は対話型の非ログイン シェルに対してのみ実行されます。実際には、一部のシステムでは、非対話型シェルに対しても読み取るように設定されています~/.bashrc

関連する質問:

関連情報