Bash

mindevis

Последний из атеистов
Участник
Сообщения
57
Розыгрыши
0
Репутация
2
Реакции
8
Баллы
863
Всем привет, вопрос к знатокам bash
есть такой код скрипта
Bash:
varLSDBcheck=$(echo "SHOW DATABASES LIKE '$LSDB' " | ${MYSQLPATH} -h ${LSDBHOST} -u ${LSUSER} --password=${LSPASS})
    if [[ ${varLSDBcheck} == "" || ${varLSDBcheck} != ${LSDB} ]]; then
        echo "Database missing or invalid"
        echo "Create a database named $LSDB? (Y/n)"
        read createDBdialog
        case ${createDBdialog} in
            "y"|"Y") echo "CREATE DATABASE IF NOT EXISTS $LSDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci" | ${MYSQLPATH} -h ${LSDBHOST} -u ${LSUSER} --password=${LSPASS}; echo "database $LSDB successfully created"; asklogin;;
            "n"|"N") finish;;
        esac
    else
        echo "Deleting loginserver tables for new content."
        #$MYL < login_install.sql &> /dev/null
        ${MYSQLDUMPPATH} --add-drop-table -h ${LSDBHOST} -u ${LSUSER} --password=${LSPASS} ${LSDB} --no-data | grep ^DROP | ${MYL}
    fi
Ломаю голову, суть данного кода заключается в условии в данный момент условие кривое, предположим у нас не создана база данных
В переменную varLSDBcheck присваиваю выход запроса SHOW DATABASES LIKE '$LSDB'
к примеру название базы "db"
делаю условие если db == "" или полученный результат не равен "db"
то отображаю текст и делаю предложение создать базу
базу создает, но далее перехожу к коду asklogin в котором повторно выбираю участок этого кода но так как база уже создана то должен сработать участок else
но он не срабатывает, и я не могу понять, может кто подскажет в чем моя проблема или толкнет на путь истинный.
Заранее благодарен
 
Решил проблему таким способом может кому понадобиться
Bash:
if [[ ! -z "`mysql -qfsBe "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='$LSDB'" 2>&1`" ]]; then
        echo "Deleting loginserver tables for new content."
        #$MYL < login_install.sql &> /dev/null
        ${MYSQLDUMPPATH} --add-drop-table -h ${LSDBHOST} -u ${LSUSER} --password=${LSPASS} ${LSDB} --no-data | grep ^DROP | ${MYL}
    else
        echo "Database missing or invalid"
        echo "Create a database named $LSDB? (Y/n)"
        read createDBdialog
        case ${createDBdialog} in
            "y"|"Y") echo "CREATE DATABASE IF NOT EXISTS $LSDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci" | ${MYSQLPATH} -h ${LSDBHOST} -u ${LSUSER} --password=${LSPASS}; echo "database $LSDB successfully created"; asklogin;;
            "n"|"N") finish;;
        esac
    fi
 
Никогда не ползуйте Переменные!!!!
Бш чистый Иф Елс
 
Назад
Сверху Снизу