Как проверить, какая команда принята?
У меня есть сценарий оболочки 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
как более высокий приоритет.