Вы можете прочитать stdout / stderr of "which" в переменную или массив (используя обратные метки) вместо проверки кода выхода.
Если в системе нет команды «который» или «где», вы также можете получить содержимое переменной $ PATH, а затем перебрать все каталоги и найти заданный исполняемый файл. По сути, это то, что делает (хотя он может использовать некоторое кэширование / оптимизацию результатов $ PATH).