Не могу запустить оболочку на сервере Ubuntu 18.04.2 LTS, но она работает в Ubuntu Desktop 18.04 LTS

Я работал в оболочке на рабочем столе Ubuntu, я также провел детальную проверку орфографии , после чего я продолжал тестировать ее и проверял, чтобы каждая строка работала, как задумывалось, кроме пары ошибки в каталогах (которые нужно будет изменить на сервере), все кажется нормальным

И теперь я пытаюсь запустить его на чистой виртуальной машине с сервером Ubuntu, поэтому я смонтировал общую папку, чтобы получить доступ к моей оболочке, дал разрешения на выполнение всем пользователям, и попытался запустить его и удивительно, он вообще не запускается

Чтобы заставить интерпретатор запустить скрипт, мне нужно удалить первую строку #! / bin / bash и использовать source вместо ./ для запуска оболочки (с именем master.sh)

И теперь, когда я могу получить я продолжаю получать эту ошибку

enter image description here

Распространенная ошибка для неправильного синтаксиса в операторах if , что я знаю, что это было исправлено мной и проверено с помощью проверки орфографии

После этого я пытаюсь d, чтобы удалить любой другой не Unix-символ, используя

enter image description here

Я точно знаю, что обе ОС используют 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 показывает эта ошибка, но не настольная (где она на самом деле работает)?

0
задан 25 April 2019 в 21:19

1 ответ

Мне кажется, что у команды sed слишком много или слишком мало /, см. Комментарий @steeldriver для лучшей команды sed.

Кроме того, вы можете открыть скрипт в vim и просмотреть непечатаемые символы с помощью [esc] :set list, чтобы увидеть, есть ли у вас возврат каретки. Если это не проблема, нам нужно больше контекста для решения ошибки bash.

0
ответ дан 25 April 2019 в 21:19

Другие вопросы по тегам:

Похожие вопросы: