+1. кстати, вы можете пропустить `[ -D "в каталог$dir" ]` тест, если вы добавить `/` до конца узора Глоб - это только каталоги. например, для реж в данных[0-9][0-9][0-9][0-9][0-9]/ ; сделать е '%з\п' "$Дир" ;сделано` Строка `#!` в начале скрипта является обязательным. Если вы оставите его, ядро откажется запускать скрипт. Некоторые снаряды есть обходной путь, который позволит им в любом случае запускать скрипт. Однако эти решения будут вызывать скрипт, чтобы вести себя по-разному в зависимости от того, как он назывался, и совершенно сломаться, если он не был вызван из командной строки с обходной путь. По этим причинам вы никогда не должны полагаться на этих обходных путей, и вместо того, чтобы содержать правильно отформатированные `#!` линии. Если вы не знаете, у вас нет сервиса... когда он пишет "только вызовы службы экстренной помощи", что просто означает, что она не активирована на перевозчика. Чтобы совершать звонки, отправлять тексты, получить сведения и т. д., Вы должны подписаться на сотовый через перевозчика.

Я пытался проверить разницу в поведении . (или источник) встроенный. Я использую Баш 3.2 на Эль-Капитан. Согласно документации, установка в POSIX-режиме (взаимозачета в POSIX) следует избегать Шелл поиск в текущем каталоге при . выдается с именем не содержащим /.

Я в каталог tmp, где myscript.sh (который перекликается с "привет") находится:

Макбук:ТМП Симоне$ установить | грэп SHELLOPTS
SHELLOPTS=braceexpand:в Emacs:hashall:histexpand:история:интерактивные-комментариев:монитор
Макбук:ТМП Симоне$ . myscript.sh 
Привет
Макбук:набор -о ТМП Симоне$ в POSIX
Макбук:ТМП Симоне$ установить | грэп SHELLOPTS
SHELLOPTS=braceexpand:в Emacs:hashall:histexpand:история:интерактивные-комментариев:монитор:с POSIX
Макбук:ТМП Симоне$ . myscript.sh 
Привет

Кажется, что сценария в текущей директории выполняется независимо от установки в POSIX. Я что-то недопонимаю или есть более тонкое объяснение?


Как указал в комментариях, поведение должно быть как описано в случае . не в путь. Моя переменная Path содержит следующую строку:

/опт/местные/ОГРН:/опт/местные/sbin:/usr/местные/Бен:/usr/Бен:/ОГРН: выполнить/sbin:/sbin размещена