1
mysql $DB_NAME <<EOFMYSQL
UPDATE environment  SET is_default = CASE WHEN environment='$ENV' THEN 1 ELSE 0 END;
EOFMYSQL

我想更新运行我的更新查询是否运行正确的代码?<< 在shell脚本中是什么意思 为什么我们在第一行之后写EOFMYSQL?

4

1 回答 1

2

<<表示法是一个“此处文档”,并提供脚本中文本的标准输入,从包含的行之后的行<<到仅包含在<<(在您的示例中,EOFMYSQL)之后指定的单词的行。因此,一行 UPDATE 语句是mysql命令的标准输入。

当您不引用 EOFMYSQL 时(如在您的示例中,shell 变量将在此处文档中展开。如果您引用它,则变量等将保持未展开状态。

如果$ENV包含您所追求的值,它应该可以工作。

于 2013-10-31T06:40:43.703 回答