In meinem .bashrc habe ich die folgenden zwei Befehle:bash Hash-Befehl in .bashrc hat keine Auswirkungen auf globale Umwelt
hash ih kl klt
hash
Wenn die Datei .bashrc bezogen ist, wird die Ausgabe wie erwartet:
hits command
0 /userdata/cfor/utils/worklib/kl
0 /userdata/cfor/utils/prodlib/ih
0 /opt/local/tools/bin/vi
Aber dann, nachdem ich an der Eingabeaufforderung "Hash" eingeben, sagt es mir, dass die Hash-Tabelle leer ist. Es ist so, als ob die Wirkung der Hash-Anweisungen nur während der Beschaffung der .bashrc-Datei wirksam wird. Ich legte eine "echo $$" Anweisung in die .bashrc Datei und überprüfte dann den Wert von $$, nachdem das Sourcing abgeschlossen war, und sie waren identisch. Warum bleiben die Auswirkungen des Hash-Befehls nach der Bereitstellung der .bashrc-Datei bestehen?
Danke!
Was ist noch in Ihrem '.bashrc'? Änderst du 'PATH'? – pneumatics
Ja, aber nur am Anfang der .bashrc-Datei. Der Hash-Befehl kommt erst, nachdem alle Pfadänderungen abgeschlossen sind. Es gibt Funktionsdefinitionen, die dem Hash-Befehl folgen, aber sie haben nichts mit den Befehlen zu tun, die der Hash-Befehl adressiert. – rbaumann