Мне очень трудно понять, как получить результаты запроса mysql в переменную сценария оболочки bash.
testDBName="some_database_name"
mysqlUser="root"
mysqlPassword="password"
mysqlCmd="/Applications/MAMP/Library/bin/mysql -u $mysqlUser -p $mysqlPassword -B -N"
cmdRes=$($mysqlCmd -e 'SHOW DATABASES LIKE "$testDBName"') #THIS IS THE TROUBLESOME LINE
if [ "$cmdRes" = "" ]; then
echo "Table does not exist"
else
echo "Table already exists"
fi
Строка, которая доставляет мне неприятности, это "cmdRes=...". Если я просто жестко запрограммирую имя таблицы, оно будет работать нормально, например:
cmdRes=$($mysqlCmd -e 'SHOW DATABASES LIKE "some_database_name"')
Но я не могу понять, как/почему/что происходит, когда у меня есть $variable внутри этой штуки. Основываясь на ответах на множество других похожих, но разных вопросов, я попытался поместить разные части строки в разные переменные, чтобы сократить цитирование, я пробовал одинарные кавычки, двойные кавычки, обратную косую черту, двойную одинарную- двойные кавычки, фигурные скобки, запуск eval и т. д., но ничего не работает.
Спасибо за любую помощь, которую вы можете предоставить.