Use comandos sob o diretório somente para uso interativo?

3

Eu tenho um bin/ sob $HOME . Isto contém algumas versões aumentadas de comandos comuns. Portanto, não quero que esses comandos sejam usados por scripts, mas apenas para serem usados em uso interativo.

É o melhor que posso fazer para adicionar

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

para o meu ~/.bash_profile ? Ou existe outra solução?

    
por Utku 27.04.2017 / 19:12

3 respostas

1

Você também pode adicionar as linhas da seguinte forma ao seu .bashrc , que define apenas o PATH se você estiver em um shell interativo.

if [ "$PS1" ]
then
    export PATH=~/bin:$PATH
fi
    
por 27.04.2017 / 20:19
0

Você poderia usar módulos de ambiente para habilitar manualmente (carregar) um módulo definindo o caminho desejado

module load homebin

Onde o módulo homebin se parece com

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

link

    
por 28.04.2017 / 14:59
-2

Depende de qual shell e (infelizmente) qual sistema você está usando. O Bash, por exemplo, usa diferentes arquivos de inicialização, dependendo se ele é usado como um shell interativo ou não interativo, conforme explicado no bash manual .

Em princípio, você deve poder adicionar export PATH=$HOME/bin:$PATH ao seu arquivo ~/.bashrc , que será executado apenas para shells interativos que não sejam de login. Na prática, alguns sistemas são configurados de tal forma que eles lêem ~/.bashrc também para shells não interativos.

Perguntas relacionadas:

por 27.04.2017 / 20:32