
У меня есть 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
Как будет выглядеть модуль Homebin
#%Module1.0
prepend-path PATH ~/bin
решение3
Это зависит от того, какую оболочку и (к сожалению) какую систему вы используете. Bash, например, использует разные файлы запуска в зависимости от того, используется ли он как интерактивная или неинтерактивная оболочка, как объясняется вруководство по bash.
В принципе, вы должны иметь возможность добавлять export PATH=$HOME/bin:$PATH
в свой ~/.bashrc
файл, который затем будет выполняться только для интерактивных оболочек без входа в систему. На практике некоторые системы настроены таким образом, что они читают ~/.bashrc
также и для неинтерактивных оболочек.
Похожие вопросы: