mysql $DB_NAME <<EOFMYSQL
UPDATE environment SET is_default = CASE WHEN environment='$ENV' THEN 1 ELSE 0 END;
EOFMYSQL
我想更新运行我的更新查询是否正确运行代码? 什么&lt;&lt;在shell脚本中意味着我们为什么要在第一行之后编写EOFMYSQL?
答案 0 :(得分:2)
<<
表示法是一个'here document',并提供脚本中文本的标准输入,从包含<<
的行之后的行到仅由{之后指定的单词组成的行{1}}(在您的示例中为<<
)。因此,单行UPDATE语句是EOFMYSQL
命令的标准输入。
当你没有引用EOFMYSQL时(如你的例子所示,那么shell变量会在这里展开。如果你引用它,那么变量等就会保持未展开状态。
如果mysql
包含您所追求的值,它应该有用。