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