Как проверить, какая команда принята?

У меня есть сценарий оболочки foo.sh в /usr/local/sbin, Кроме того, я использую другой сценарий с тем же именем. Хранится в /home/user/scripts,

Оба пути принадлежат PATH, Как я могу узнать, какой из этих скриптов выполняется при наборе текста? foo.sh в командной строке? Могу ли я повлиять на это?

1 ответ

Решение

Несколько дней назад я остался доволен своим ответом. Я также знал, что which Команда не используется для проверки существования команды. Теперь я не очень доволен своим ответом, и я ссылаюсь на этот замечательный ответ.


С простым which команда:

which foo.sh

Или type команда:

type foo.sh

И вы можете влиять на это с помощью порядка путей в вашем $PATH или по абсолютному пути при запуске скрипта, например

/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 как более высокий приоритет.

Другие вопросы по тегам