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

更新クエリを実行して更新したいのですが、実行するコードは正しいですか? そして << はシェルスクリプトで何を意味するのですか?なぜ最初の行の後に EOFMYSQL を書くのですか?

4

1 に答える 1

2

表記法は「<<ヒアドキュメント」であり、スクリプト内のテキストからの標準入力を、を含む行の後の行から、 (あなたの例では)<<の後に指定された単語のみからなる行まで提供します。したがって、1 行の UPDATE ステートメントがコマンドへの標準入力です。<<EOFMYSQLmysql

EOFMYSQL を引用しない場合 (あなたの例のように、シェル変数はヒア ドキュメントで展開されます。引用すると、変数などは展開されないままになります。

求めている値が含まれている場合$ENVは、機能するはずです。

于 2013-10-31T06:40:43.703 に答える