Я пытаюсь написать bash-скрипт для получения дампа из базы данных 2 ГБ mysql . Затем я удаляю эту базу данных и восстанавливаю ее из скрипта bash, используя дамп mysql. Я буду инициировать этот скрипт с удаленной машины. Поэтому мне нужен способ узнать, завершился ли процесс восстановления дампа на удаленной машине для выполнения следующих команд. Поскольку я ничего не мог найти в Интернете, я попытался определить, равен ли размер созданной базы данных желаемому размеру базы данных. Тем не менее, я не могу сделать, так как я использовал приведенный ниже скрипт для получения размера базы данных:
size=$(mysql -u root -ppass -D tpcw -e "SELECT sum(round(((data_length + index_length) / 1024 / 1024 / 1024), 2)) as 'Size in GB' FROM information_schema.TABLES WHERE table_schema = 'tpcw'")
и когда я пытаюсь запустить этот скрипт:
size=$(mysql -u root -ppass -D tpcw -e "SELECT sum(round(((data_length + index_length) / 1024 / 1024 / 1024), 2)) as 'Size in GB' FROM information_schema.TABLES WHERE table_schema = 'tpcw'")
echo $size
if [ "$size" == "Size in GB 2.47" ] ; then
echo "match"
break
else
echo "does not match"
fi
Возвращает «не совпадает». Это потому, что строка, перенастроенная запросом, отображается как
Размер в ГБ
2,47
когда я печатаю это с помощью:
echo "$size"
Но это печатает как:
Размер в ГБ 2,47
когда я печатаю это с помощью:
echo $size
Я не могу понять, что не так.