2015-04-07 62 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