¿Usar comandos en el directorio solo para uso interactivo?

¿Usar comandos en el directorio solo para uso interactivo?

Tengo un bin/bajo $HOME. Contiene algunas versiones aumentadas de comandos comunes. Por lo tanto, no quiero que estos comandos sean utilizados por scripts, sino solo en uso interactivo.

Es lo mejor que puedo hacer para agregar

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

para mi ~/.bash_profile? ¿O hay otra solución?

Respuesta1

También puede agregar las siguientes líneas a su .bashrc, que solo establece PATHsi está en un shell interactivo.

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

Respuesta2

Puede utilizar módulos de entorno para habilitar (cargar) manualmente un módulo configurando la ruta deseada

module load homebin

Cómo se vería el módulo homebin

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

http://modules.sourceforge.net

Respuesta3

Depende de qué shell y (desafortunadamente) qué sistema esté utilizando. Bash, por ejemplo, usa diferentes archivos de inicio dependiendo de si se usa como un shell interactivo o no interactivo, como se explica en elmanual de bash.

En principio, debería poder agregar export PATH=$HOME/bin:$PATHa su ~/.bashrcarchivo, que luego se ejecutará solo para shells interactivos sin inicio de sesión. En la práctica, algunos sistemas están configurados de manera que lean ~/.bashrctambién shells no interactivos.

Preguntas relacionadas:

información relacionada