Кілька днів тому я був задоволений своєю відповіддю. Я також знав, що whichкоманда не використовується для перевірки наявності команди. Зараз я не дуже задоволений своєю відповіддю, і я посилаюся на цю чудову відповідь .
За допомогою простої whichкоманди:
which foo.sh
Або typeкоманда:
type foo.sh
І ви можете впливати на це порядком шляхів у вашому $PATHабо через абсолютний шлях при запуску сценарію, EG
/home/user/scripts/foo.sh
Приклад
Якщо PATH визначено, як показано нижче
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
І ви запускаєте скрипт або щось інше, що є в /usr/local/binі в /usr/bin, сценарій в /usr/local/binяк вищий пріоритет.
bashіzshє такожtypeвбудований; натомість вzshwhich, інакше відbash, є вбудований (а не/usr/bin/which)