如何检查mysql查询在shell脚本中是成功的
问题描述:
我需要为shell脚本中的所有mysql查询设置牵引,因此我必须查找所有查询是否成功执行,因此我的简单代码如下所示。在这里我必须找到所有的mysql查询都成功完成了。如何检查mysql查询在shell脚本中是成功的
#!/bin/bash
set -x
date=$(date +"%Y")
month=$(date +"%m")
day=$(date +"%d")
user="appuser"
password="Appuser"
mysql=/usr/local/mysql/bin/mysql
db="finance"
tbname="cash_expense"
$mysql -u$user -p$password -S"/var/lib/mysql/mysql.sock" $db -N -e"create table new like $tbname;rename table $tbname to $tbname$date;rename table new to $tbname;truncate table $tbname;"
答
你可以检查mysql的退出代码
演示:
~$ cat a.sh
#!/bin/sh
mysql -e"select 1"
ret=$?
echo "correct syntax: $ret"
mysql -e"select bad syntax"
ret=$?
echo "bad syntax: $ret"
if [ "$ret" = "0" ]; then
echo "mysql executed ok"
else
echo "mysql executed failed"
fi
~$ sh a.sh
+---+
| 1 |
+---+
| 1 |
+---+
correct syntax: 0
ERROR 1054 (42S22) at line 1: Unknown column 'bad' in 'field list'
bad syntax 1
mysql executed failed
'$'包括以前执行的命令的状态。如果SQL查询成功,'$?'将成为'0'。另外,这将是'1'。 – Vince