このmysql出力メッセージを変数にどのようにキャプチャできますか?

このmysql出力メッセージを変数にどのようにキャプチャできますか?

私のスクリプトには次の行があります。

mysqlinsert=$(/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot --password=notmyrealpassword << EOF
$mysqlrun)

何を返しても、変数は$mysqlinsert常に空です。-nmysqlで使用(出力バッファリングを無効にする)を試み、EOFBehindを試しましたが、$mysqlrunどちらも機能しませんでした。

答え1

コマンドが目的の出力を stderr に送信する場合は、コマンドオーバーライドでコマンドの stderr をリダイレクトします。

mysqlinsert=$(/Applications/MAMP/Library/bin/mysql ... 2>&1 << EOF ...)
#
#                                                     /\______addition____

...提案された変更に焦点を当てるために、いくつかのパラメータを省略しました。

関連情報