Чудове рішення @ icarus працює для функцій, якщо вони визначені буквально, а не є результатом eval
вмісту іншого файлу (у якому файл із eval
заповітом відображатиметься як джерело). Він не буде друкувати вихідний файл псевдонімів, вбудованих оболонок (як echo
) та виконуваних файлів (двійкових чи ні), і я вважаю, що ця інформація взагалі недоступна. Деякі команди можуть надрукувати вихідні файли (і навіть можуть бути правдивими щодо цього), або під час звичайного виконання, або у відповідь на сигнал.
__git_ps1
визначено в /usr/share/git/git-prompt.sh
і /usr/share/git/completion/git-prompt.sh
в моїй системі Arch Linux, тому це може бути для вас однаковим.
Перегляньте розділ " Виклик ", man bash
якщо ви хочете шукати команди, спеціально отримані на початку оболонки - вони можуть джерело інших файлів, які, в свою чергу, створюють інші файли.
$PATH
, вінtype
не працюватиме. Ви можете спробувати просто використовуватиfind
абоlocate
.locate
буде набагато швидше, оскільки він використовує попередньо існуючу базу даних, але вона не працюватиме, якщо команда була встановлена зовсім недавно.