по умолчанию «команда не найдена» при выполнении после объявления переменной

по умолчанию «команда не найдена» при выполнении после объявления переменной

Почему следующий код не работает?

#!/bin/sh
PATH=$PWD/Info
defaults read $PATH

Каждый раз, когда я это делаю, я получаю

./script: строка 3: значения по умолчанию: команда не найдена

Как только я делаю это в одну строку, это работает.

defaults read $PWD/Info

Это нормально. Мне просто интересно.

решение1

Потому что вы меняете $PATH, которая является специальной переменной. Оболочка использует PATH для поиска исполняемых программ. defaultsвероятно, одна из них, но после удаления ее папки из PATH оболочка больше не может ее выполнить.

решение2

Добавьте к пути вместо его замены:

PATH=$PWD/Info:$PATH

Связанный контент