У меня есть простой скрипт:Почему я не могу выполнить сценарий оболочки, используя. ./test.sh?
#!/bin/bash
echo test
Я могу выполнить скрипт успешно, как:
./test.sh
и
source ./test.sh
Однако, следующие выдает ошибку:
. ./test.sh
ошибка:
.: Command not found.
Что может быть причиной ошибки? Это работает на el capitan (это было обновление), но не на sierra. Что-то изменилось с помощью терминала или оболочки по умолчанию в последних нескольких основных выпусках?
Я запускаю macOS 10.12.3 с терминалом по умолчанию - это чистая установка и НЕ обновление (обновления зависают в предыдущих настройках оболочки).
Можете ли вы попробовать это как просто '. test.sh', 'POSIX' рекомендует этот путь. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#dot – Inian
Я все еще получаю.: команда не найдена – csilk
@Inian: POSIX говорит: «Если файл не содержит, оболочка должна использовать путь поиска, указанный PATH, чтобы найти каталог, содержащий файл. ", что подразумевает, что вы _must_ используете префикс пути'./'для источника файла в каталоге _current_. '. test.sh' _shouldn't_ посмотреть в текущем каталоге. ('bash' does, но' dash', 'ksh' и' zsh' не соответствуют POSIX). –
mklement0