Znam tylko dwa sposoby: alias foo=bar
i function foo() { bar }
.
Powód, dla którego pytam, jest taki - nagle w jednej z moich sesji bash - nie mogę uruchomić ln
polecenia, ponieważ bash
występuje błąd -bash: /usr/local/.../ln: No such file or directory
(gdzie /usr/local/.../
jest to jeden z wpisów w mojej PATH
zmiennej środowiskowej).
Nie jest to jednak PATH
problem, ponieważ jeśli uruchomię which ln
, wyświetli oczekiwany plik binarny /usr/bin/ln
(który mogę uruchomić poprawnie, jeśli podam ścieżkę bezwzględną).
Ja również sprawdzić ln
w moich alias
and function
deklaracji, a nie ma nic:
$ declare -f | grep ln
$ alias | grep ln
Problem występuje tylko w jednej sesji bash. Jeśli uruchomię nową powłokę, to znowu działa dobrze, ale chcę wiedzieć, co spowodowało ten problem nagle w tej jednej sesji bash.
Wszelkie pomysły na to, co może być tego przyczyną?
type ln
, rozumiem,ln is hashed (/usr/local/.../ln)
co wydaje się być problemem, ale co to znaczy dokładnie, że jest „zakodowane”? Nigdy nie słyszałem o tej funkcji w bash.hash -l
poleceniem. Jest dynamicznie zbudowany podczas używania poleceń.hash -r
aby zresetować tablicę skrótów polecenia-do-ścieżki, iln
wróciłem do stanu gotowości.