
Я пытаюсь запустить простой скрипт bash, который использует команды wc
и cat
. Скрипт падает с этим:
wc: command not found
или это (после того, как я закомментировал строку, которая использует wc):
cat: command not found
Я понятия не имею, что происходит. Похожий скрипт, который содержит точно такие же фрагменты кода, работает просто идеально. Оба скрипта используются в одинаковых условиях. Кроме того,
machine:~ user$ which wc
/usr/bin/wc
и
machine:~ user$ which cat
/bin/cat
решение1
Как отметил @Tyson, PATH
переменная содержит ответ.
Я просто хотел отметить, что использование полных путей в ваших скриптах обычно считается хорошей практикой. Например, вместо вызова wc
вы можете захотеть вызвать /usr/bin/wc
. Помимо решения вышеуказанной проблемы, это более безопасно, так как вы предотвращаете запуск приложения, которое кто-то мог поместить в ваш PATH, используя то же имя... Я не могу вспомнить названия этих атак, но вы поняли идею"="