Я новичок в оболочках, так что я застрял с таким вопросом. Каков самый простой способ отличить эти команды?
для t.sh
оболочка будет искать по ПУТЬ
, чтобы найти файл с именем t.sh
, и выполнить его если он найдет его
для . t.sh
оболочка будет искать по ПУТЬ
файл с именем t.sh
, но источник , если найдет его.
В случае оболочки bash поведение поиска для исходных команд имеет дополнительные соображения, как отмечено в man bash
:
Когда bash не находится в режиме posix, текущим каталогом является выполняется поиск, если в PATH не найден файл. Если опция sourcepath к встроенной команде shopt отключена, PATH не искал.
для /t.sh
оболочка будет искать файл t.sh
в корневом каталоге файловой системы /
и пытаться выполнить его
для ./ t.sh
оболочка будет искать файл t.sh
в текущем рабочем каталоге оболочки .
и попытаться выполнить его
См. также