0

我的 bash:测试

#!/bin/bash

case $1 in    
"restore") tar xzvf $2 | mysql --password=my_password --user=my_user my_db;;
*) echo "Others";;
esac

测试:

testing restore bckp_2013.tgz 

不工作,在第 1 行显示“错误 1064 (42000):您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'bckp_2013.sql' 附近使用正确的语法”

但这有效:

mysql --password=my_password --user=my_user my_db < bckp_2013.sql

有什么建议么?谢谢。

4

1 回答 1

1

试试这个:

#!/bin/bash

case $1 in    
"restore") tar xzvf $2;
           sqlfile=$(ls -t *.sql | xargs);
           mysql --password=my_password --user=my_user my_db < $sqlfile;;
*) echo "Others";;
esac
于 2013-10-09T01:14:57.357 回答