質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

Q&A

解決済

2回答

5859閲覧

【シェルスクリプト】SQLの終了ステータス及びエラー内容の取得について

Fujic

総合スコア7

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

0グッド

0クリップ

投稿2020/05/31 06:21

前提・実現したいこと

シェルスクリプト内での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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

DATA=MYSQL_PWD=${DBのパスワード} ${DBのパス} -u ${DBのユーザ} -h ${DBのホスト} -P ${DBのポート} -A ${DB名} -N -e "${SQL}" -B 2>> ${LOG} | sed -e '~~~'

2>> ${LOG}の位置を変更することでエラー内容を出力できました。

また、終了ステータスはパイプステータスを取得し解決いたしました。

投稿2020/06/02 12:53

Fujic

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

メッセージが標準出力じゃなくて、標準エラー出力に出ているんでしょう。

標準エラー出力をパイプに渡すために、コマンドに2>&1を付けましょう。

投稿2020/05/31 07:36

otn

総合スコア84533

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問