【发布时间】:2019-11-07 04:48:47
【问题描述】:
请考虑以下 sn-p 应该进入 kubernetes 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
我将在执行整个 sn-p 时打印出一个数据库列表。
当我运行原始文件时,我得到了空的 BAR 变量。
现在我知道 BAR 可以被初始化,并且当我尝试将它设置为测试字符串并打印出来时,我正在正确打印它。
目前我有一个运行的脚本:
BAR=$(echo "show databases" | mysql -u root -pwhatever)
在容器外而不是在“heredoc”内,它会正确初始化变量。
如何使用“heredoc”正确初始化 bar?我道歉 对于示例的特殊性,不想丢失将其转换为我认为相似的细节而不是实际的细节(这里的开发人员很差)。
【问题讨论】: