Рейтинг:-1

Сценарий оболочки выдает ошибку «неожиданный конец файла»

флаг ar

Я работал над этим скриптом в течение достаточно долгого времени. Но я получаю ошибки. Предполагается, что скрипт использует tmpfs для быстрой передачи файлов из точки А в точку Б. Скрипт показан ниже.

#!/бин/баш
кошка .ramv &> /dev/null
если [[$? = "1" ]]; тогда
    dialog --yesno "Я обнаружил, что вы не использовали эту программу раньше. Хотите настроить RAM-диск и установить необходимые пакеты?" 24 80
еще
если [[$? = "0" ]]; тогда
хвост --lines=+27 ~/ramv.sh | бить 
фи
фи
если [[$? = "1" ]]; тогда
    диалог --msgbox "Эта команда не будет работать, если вы не установите пакеты и виртуальный диск." 24 80
еще
если 
    dialog --yesno "Размер виртуального диска по умолчанию равен 2 ГБ. Всего ли у вас больше 4 ГБ ОЗУ?" 24 80
    если [[$? = "1" ]]; тогда
    dialog --msgbox «Эта команда не будет работать, если у вас не более 4 ГБ оперативной памяти» 24 80
    еще
    dialog --msgbox "Для этого мне нужен root-доступ. Не могли бы вы ввести пароль root?" 24 80
    sudo dialog --msgbox "Спасибо! Теперь мы можем приступить к созданию виртуального диска" 24 80
    sudo mkdir /mnt/tmp
    sudo mount -t tmpfs -o size=2g tmpfs /mnt/tmp
    судо эхо"
tmpfs /mnt/tmp tmpfs rw,size=2G 0 0" >> /etc/fstab
dialog --msgbox "Установка завершена. В вашу домашнюю папку записан файл справки." 24 80
сенсорный .ramv
фи
мв $1 /млн/тмп
мв /мнт/tmp/$1 $2

Ошибка показана ниже

eli@eli-рабочий стол:~$ ./ramv.sh
./ramv.sh: строка 29: синтаксическая ошибка: неожиданный конец файла
eli@eli-рабочий стол:~$ 

Может ли кто-нибудь показать мне, почему эта ошибка происходит и как ее исправить?

флаг hr
Что ж, я насчитал 5 "если" и только 3 "фи" - я предлагаю начать с последовательного создания отступов в вашем коде, это должно помочь вам понять, куда нужно направить отсутствующие.
FedKad avatar
флаг cn
Отвечает ли это на ваш вопрос? [Узнайте, содержит ли сценарий оболочки синтаксическую ошибку, не запуская сценарий](https://askubuntu.com/questions/482687/know-whether-the-shell-script-contains-syntax-error-without-running-the-script ) Смотрите второй ответ!
waltinator avatar
флаг it
Всегда вставляйте свой скрипт в `https://shellcheck.net`, средство проверки синтаксиса или устанавливайте `shellcheck` локально. Сделайте использование `shellcheck` частью вашего процесса разработки.
Hannu avatar
флаг ca
`судо эхо"`
Eli Thrash avatar
флаг ar
Когда я добавляю больше fi, он говорит `./ramv.sh: строка 27: синтаксическая ошибка рядом с неожиданным токеном 'fi' ` `./ramv.sh: строка 27: фи' `
Eli Thrash avatar
флаг ar
теперь это работает. Но как мне заставить его пропускать диалоговые команды после установки?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.