Я работал в оболочке на рабочем столе Ubuntu, я также провел детальную проверку орфографии , после чего я продолжал тестировать ее и проверял, чтобы каждая строка работала, как задумывалось, кроме пары ошибки в каталогах (которые нужно будет изменить на сервере), все кажется нормальным
И теперь я пытаюсь запустить его на чистой виртуальной машине с сервером Ubuntu, поэтому я смонтировал общую папку, чтобы получить доступ к моей оболочке, дал разрешения на выполнение всем пользователям, и попытался запустить его и удивительно, он вообще не запускается
Чтобы заставить интерпретатор запустить скрипт, мне нужно удалить первую строку #! / bin / bash и использовать source вместо ./ для запуска оболочки (с именем master.sh)
И теперь, когда я могу получить я продолжаю получать эту ошибку
Распространенная ошибка для неправильного синтаксиса в операторах if , что я знаю, что это было исправлено мной и проверено с помощью проверки орфографии
После этого я пытаюсь d, чтобы удалить любой другой не Unix-символ, используя
Я точно знаю, что обе ОС используют BASH в качестве интерпретатора (я проверил )
Вот минимальный пример кода 2 «условий IF», который я могу определить, останавливая сценарий, если кто-то захочет посмотреть на него
#!/bin/bash
if [ -e DB_conf ]
then
read -p "Use DB_conf settings? [y/n]: " -n 1 -r
if [[ $REPLY =~ ^[Yy]$ ]]
then
STUFF
else #This is line 39
STUFF2
fi
else
MORE STUFF
fi
Почему сервер Ubuntu показывает эта ошибка, но не настольная (где она на самом деле работает)?
Мне кажется, что у команды sed слишком много или слишком мало /, см. Комментарий @steeldriver для лучшей команды sed.
Кроме того, вы можете открыть скрипт в vim и просмотреть непечатаемые символы с помощью [esc] :set list
, чтобы увидеть, есть ли у вас возврат каретки. Если это не проблема, нам нужно больше контекста для решения ошибки bash.