2015-04-07 111 views
1

我需要为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;" 
+0

'$'包括以前执行的命令的状态。如果SQL查询成功,'$?'将成为'0'。另外,这将是'1'。 – Vince

回答

3

你可以检查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