Пожалуйста, рассмотрите следующий фрагмент, который должен войти в контейнер pubernetes mysql pod и инициализировать переменную BAR в список баз данных mysql.
kubectl -n somens exec -i mysql-69df7d4c77-hxtng bash <<EOF
echo Hello;
BAR=$(echo "show databases" | mysql -u root -pwhatever)
echo "BAR=\$BAR"
EOF
Если я изменю строку
BAR=$(echo "show databases" | mysql -u root -pwhatever)
на
echo "show databases" | mysql -u root -pwhatever
Я получу распечатанный список баз данных при выполнении всего фрагмента.
Когда я запускаю оригинал, я получаю пустую переменную BAR.
Теперь я знаю, что BAR можно инициализировать, и я печатаю его правильно, так как я пытался установить егопроверить строку и распечатать.
В настоящее время у меня есть скрипт, который запускается:
BAR=$(echo "show databases" | mysql -u root -pwhatever)
вне контейнера, а не внутри "heredoc", и правильно инициализирует переменную.
Как правильно инициализировать панель с помощью "heredoc"?Я извиняюсь за специфичность примера, не хотел бы потерять детали, преобразуя его в то, что, по моему мнению, похоже, а не в то, чем оно является на самом деле (бедный разработчик здесь).