質問: ### 前提・実現したいこと シェルスクリプト内でのSQL実行時の終了ステータス及びエラー内容の取得について 以下の内容で実現したい時どのように修正すれば良いでしょうか。 <実現したいこと> ・エラー終了コードの取得 ・エラー内容の取得 ・終了コード、エラー内容のログ出力 ### 発生している問題・エラーメッセージ ・エラー内容がログに出力されずにコンソール上に表示される。 ・終了コード終了コードが1でなく0で取得される。 ### 該当のソースコード ``` SQL="id,name from test" #エラーを出すためにselectを抜いています DATA=`MYSQL_PWD=${DBのパスワード} ${DBのパス} -u ${DBのユーザ} -h ${DBのホスト} -P ${DBのポート} -A ${DB名} -N -e "${SQL}" -B |sed -e '~~~' 2>> ${LOG}` END_STATUS=$? if [ ${END_STATUS} -ne 0 -o ! -z "${DATA}"] then echo "ok" >> ${LOG} fi ```
回答: DATA=`MYSQL_PWD=${DBのパスワード} ${DBのパス} -u ${DBのユーザ} -h ${DBのホスト} -P ${DBのポート} -A ${DB名} -N -e "${SQL}" -B 2>> ${LOG} | sed -e '~~~'` 2>> ${LOG}の位置を変更することでエラー内容を出力できました。 また、終了ステータスはパイプステータスを取得し解決いたしました。