Я знаю лише два способи: alias foo=bar
і function foo() { bar }
.
Причина, про яку я запитую, полягає в тому, що - раптом на одному з моїх сеансів bash - я не можу запустити ln
команду, тому що bash
помиляється з -bash: /usr/local/.../ln: No such file or directory
(де /usr/local/.../
є одна із записів у моїй PATH
змінній оточення).
Це не PATH
проблема, тому що якщо я запускаю, which ln
він виводить очікуваний двійковий код /usr/bin/ln
(який я можу виконати добре, якщо вкажу абсолютний шлях).
Я також перевірив ln
у своїх alias
і function
деклараціях, і нічого немає:
$ declare -f | grep ln
$ alias | grep ln
Проблема виникає лише за один баш-сеанс. Якщо я запускаю нову оболонку, вона знову справно працює, але я хочу знати, що спричинило цю проблему раптом у цьому конкретному сеансі баш.
Будь-які ідеї щодо того, що може бути причиною цього?
type ln
я отримуюln is hashed (/usr/local/.../ln)
проблему, але що це означає, що це "хеш"? Я ніколи не чув про цю особливість в басі.