
Ich habe ein bin/
Unter $HOME
. Dieses enthält einige erweiterte Versionen gängiger Befehle. Daher möchte ich nicht, dass diese Befehle von Skripten verwendet werden, sondern nur im interaktiven Einsatz.
Das Beste, was ich tun kann, um hinzuzufügen
for f in ~/bin/*
do
alias "$(basename $f)"="$f"
done
zu meinem ~/.bash_profile
? Oder gibt es eine andere Lösung?
Antwort1
Sie können auch die folgenden Zeilen zu Ihrem hinzufügen .bashrc
, wodurch das nur festgelegt wird, PATH
wenn Sie sich in einer interaktiven Shell befinden.
if [ "$PS1" ]
then
export PATH=~/bin:$PATH
fi
Antwort2
Sie können Umgebungsmodule verwenden, um ein Modul manuell zu aktivieren (laden), das den gewünschten Pfad festlegt
module load homebin
So würde das Homebin-Modul aussehen
#%Module1.0
prepend-path PATH ~/bin
Antwort3
Es hängt davon ab, welche Shell und (leider) welches System Sie verwenden. Bash beispielsweise verwendet unterschiedliche Startdateien, je nachdem, ob es als interaktive oder nicht-interaktive Shell verwendet wird, wie imBash-Handbuch.
export PATH=$HOME/bin:$PATH
Im Prinzip sollten Sie in der Lage sein, Ihrer Datei etwas hinzuzufügen ~/.bashrc
, das dann nur für interaktive Shells ohne Anmeldung ausgeführt wird. In der Praxis sind einige Systeme so konfiguriert, dass sie ~/.bashrc
auch für nicht interaktive Shells lesen.
Ähnliche Fragen: