使用目錄下的指令僅用於互動使用?

使用目錄下的指令僅用於互動使用?

我有一個bin/$HOME.其中包含一些常用指令的增強版本。因此,我不希望這些命令由腳本使用,而僅用於互動式使用。

我能做的就是添加

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

到我的~/.bash_profile?或者有其他解決方案嗎?

答案1

您也可以將如下行新增至您的 中,這僅在您處於互動式 shell 中.bashrc設定。PATH

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

答案2

您可以使用環境模組手動啟用(載入)設定所需路徑的模組

module load homebin

homebin 模組看起來像

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

http://modules.sourceforge.net

答案3

這取決於您使用的 shell 和(不幸的是)哪個系統。例如,Bash 根據是用作互動式 shell 還是非互動式 shell 使用不同的啟動文件,如bash手冊

原則上,您應該能夠添加export PATH=$HOME/bin:$PATH到您的~/.bashrc文件中,然後該文件將僅針對互動式非登入 shell 執行。實際上,某些系統被配置為~/.bashrc也讀取非互動式 shell。

相關問題:

相關內容