使用目录下的命令仅用于交互使用?

使用目录下的命令仅用于交互使用?

我有一个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。

相关问题:

相关内容