Мне назвали сценарий оболочки foo.sh
в /usr/local/sbin
. Кроме того, я использую другой сценарий с тем же именем. Это хранится в /home/user/scripts
.
Оба пути принадлежат PATH
. Как я могу узнать, какой из тех сценариев выполняются при вводе foo.sh
на командной строке? Я могу влиять на него?
Несколько дней назад я был удовлетворен своим ответом. Я также знал что which
команда не используется, чтобы протестировать, существует ли команда. Теперь я не таким образом удовлетворен своим ответом, и я обращаюсь к этому большому ответу.
С простым which
команда:
which foo.sh
Или a type
команда:
type foo.sh
И можно влиять на это с порядком путей в Вашем $PATH
или через полный путь, когда сценарий запускается, НАПРИМЕР.
/home/user/scripts/foo.sh
Пример
Если ПУТЬ определяется как ниже
/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
как более высокий приоритет.