В сценарии нет ничего, что могло бы вызвать эту ошибку. Если вы запустите скрипт с sh./script.sh
, он выдаст
TEST LAST LOOP
в качестве вывода. Если запустить его с bash./script.sh
, вы получите тот же вывод, но с дополнительной ошибкой «ожидается целочисленное выражение», поскольку t
не является целым числом (, это также может произойти, если вы запустите с sh
, если ваш sh
реализуетсяbash
). Если вы запустите его с ./script.sh
, оболочка, скорее всего, выдаст сообщение «Нет такого файла или каталога», поскольку вы не добавили правильную строку #!
-.
В этом скрипте вы можете использовать #!/bin/sh
вместо строки #!
-, так как вы используете только стандартные функции POSIX.
Тест [ t -eq 1 ]
никогда не будет верным, так какt
(символ )не является целым числом. Если вы устанавливаете переменную t
в целое число, используйте [ "$t" -eq 1 ]
в тесте.
Единственный способ заставить оболочку сказать «неожиданный конец файла» — это преобразовать сценарий в текстовый файл DOS и запустить его с помощью bash
.
Если вы получаете эту ошибку, то файл сценария, вероятно, является текстовым файлом DOS (, возможно, из-за того, что он был создан на компьютере с Windows ). Вы должны запустить dos2unix
в сценарии.
CentOS (Community ENTerprise Operating System )— это сборка сообщества (re )RHEL (Red Hat Enterprise Linux )с измененным брендингом и некоторыми другими деталями. Он стремится к полной двоичной совместимости, вплоть до ошибки -для ошибки -. У него нет доступа к репозиториям пакетов RHEL, он использует свои собственные. EPEL (Extra Packages for Enterprise Linux )— это проект Fedora, предлагающий пакеты для RHEL/CentOS, которых нет в RHEL.
Я не знаю, откуда берется «установка dnf заблокирована». Обратите внимание, что в RHEL/CentOS dnf является относительно новым (Я полагаю, что альтернатива, начиная с версии 7 ), возможно, доступна только (устаревшая )yum? Вы можете попробовать yum install dnf
, если вам это нужно. В зависимости от вашей точной версии CentOS его может вообще не быть.
Последнее сообщение об ошибке, которое вы цитируете, совершенно ясно :Postgres не может найти/прочитать свою конфигурацию. Внимательно проверьте правильность настройки. Неправильное имя файла где-то может все испортить.