Оказывается, в баше есть встроенная команда command, которая изначально предназначена для запуска исполняемого файла, имя которого совпадает со какой-нибудь встроенной командой баша. Однако command -v можно использовать для проверки, существует ли исполняемый файл в принципе.

Более очевидный способ — использовать which, который еще и путь покажет, но внезапно, это не самый лучший вариант:

  • which может отсутствовать в некоторых системах (особенно если система урезана под контейнер);
  • which на некоторых системах может не устанавливать код ошибки;
  • which может вызывать под капотом пакетный менеджер.