Can someone help me ??? i don't know where is the problem ??
./menu.sh: line 268: unexpected EOF while looking for matching `"'
./menu.sh: line 271: syntax error: unexpected end of file
submenuFTP () { local PS3='Please enter option: ' local options=( "Install vsftp" "create ftp user" "Return to menu") local opt select opt in "${options[@]}" do case $opt in "Install vsftp") ./vsftp/vsftp_install.sh ;; "Create ftp user") ./vsftp/create_ftp.sh ;; "Return to menu") return ;; *) echo "invalid option $REPLY";; esac done
}
submenuDatabase () { local PS3='Please enter option: ' local options=("MySQL" "MariaDB" "MongoDB" "Postgres" "Return to menu") local opt select opt in "${options[@]}" do case $opt in "Install MySQL ") ./Database/mysql.sh ;; "Install MariaDB") ./Database/mariadb.sh ;; "Install MongoDB") ./Database/mongodb.sh ;; "Install Postgres") ./Database/postgres.sh ;; "Return to menu") return ;; *) echo "invalid option $REPLY";; esac done
}
submenuEmail () { local PS3='Please enter option: ' local options=("Install postfix" "Install anti-spam" "Install anti-virus" "Add domaine" "Add user mail" "Return to menu") local opt select opt in "${options[@]}" do case $opt in "Install postfix") ./mail/postfix_install.sh ;; "Install anti-spam") ./mail/spamassassin_install.sh ;; "Install anti-virus") ./mail/clamAV_install.sh ;; "Add domaine") ./mail/add_domain.sh ;; "Add user mail") ./mail/add_user.sh ;; "Return to menu") return ;; *) echo "invalid option $REPLY";; esac done
}
submenuawstats () { local PS3='Please enter option: ' local options=("Install awstats" "Add domain awstats" "Return to menu") local opt select opt in "${options[@]}" do case $opt in "Install awstats") ./Monitoring/awstats_install.sh ;; "Add domain awstats") ./Monitoring/awstats_add_domaine.sh ;; "Return to menu") return ;; *) echo "invalid option $REPLY";; esac done
} submenuprestashop () { local PS3='Please enter option: ' local options=("Install prestashop" "Add domain prestashop" Return to menu") local opt select opt in "${options[@]}" do case $opt in "Install prestashop") ./Monitoring/prestashop_install.sh ;; "Add domain prestashop") ./Monitoring/prestashop_add_domaine.sh ;; "Return to menu") return ;; *) echo "invalid option $REPLY";; esac done
}
submenuMonitoring () { local PS3='Please enter option: ' local options=( "Use awstats" "Use prestashop" "Return to menu") local opt select opt in "${options[@]}" do case $opt in "Use awstats") submenuawstats ;; "Use prestashop") submenuprestashop ;; "Return to menu") return ;; *) echo "invalid option $REPLY";; esac done
}
submenuSecurity () {
local PS3='Please enter option: ' local options=("Install certbot" "Secure web page" "Secure mail" "Return to menu") local opt select opt in "${options[@]}" do case $opt in "Install certbot") ./certbot/certbot_install.sh ;; "Secure web page") ./certbot/certbot_web.sh ;; "Secure mail") ./certbot/certbot_mail.sh ;; "Secure FTP") ./certbot/certbot_FTP.sh ;; "Return to menu") return ;; *) echo "invalid option $REPLY";; esac done
}
submenuwebserver () { local PS3='Please enter option: ' local options=("Install Nginx" "Create web page" "Return to menu") local opt select opt in "${options[@]}" do case $opt in "Install Nginx ") ./serverWeb/nginx_install.sh ;; "Create web page") ./serverWeb/nginx_add_page.sh ;; "Return to menu") return ;; *) echo "invalid option $REPLY";; esac done
}
submenuDNS () { local PS3='Please enter option: ' local options=("Install PowerDNS" "Add domaine" "Return to menu") local opt select opt in "${options[@]}" do case $opt in "Install PowerDNS") ./DNS/power_install.sh ;; "Add domaine") echo "you chose sub item 1" ;; "Return to menu") return ;; *) echo "invalid option $REPLY";; esac done
}
submenuCron () { local PS3='Please enter option: ' local options=("Install Cron" "Add domaine" "Return to menu") local opt select opt in "${options[@]}" do case $opt in "Install Cron") ./cron/install_cron.sh ;; "Add cron job for database") ./cron/cron_database.sh ;; "Add cron job for nginx") ./cron/cron_nginx.sh ;; "Add cron job for awstats") ./cron/cron_awstats.sh ;; "Add cron job for certbot") ./cron/cron_certbot.sh ;; "Return to menu") return ;; *) echo "invalid option $REPLY";; esac done
}
# main menu
local PS3='Please enter option: '
options=("File manager" "Databases" "Email" "Monitoring" "Security" "Web server" "Web server" "Cron job" "DNS server" "Main menu quit")
select opt in "${options[@]}"
do case $opt in "File manager") submenuFTP ;; "Databases") submenuDatabase ;; "Email") submenuEmail ;; "Monitoring") submenuMonitoring ;; "Security") submenuSecurity ;; "Web server") submenuwebserver ;; "DNS server") submenuDNS ;; "Cron job") submenuCron ;; "Main menu quit") exit ;; *) echo "invalid option $REPLY";; esacdone the line 268 and 171 are :
268 *) echo "invalid option $REPLY";;
269 esac
270 done
271 2 1 Answer
./menu.sh: line 268: unexpected EOF while looking for matching `"'
local options=("Install prestashop" "Add domain prestashop" Return to menu")is missing a quote " before Return.
Note you can use ShellCheck – shell script analysis tool to check for errors in bash scripts.
1