shell脚本里执行多个sql语句问题
我本意是想先手动输入root的的密码,root用户登入后创建用户DDAP和数据库DDAP,然后mysql-u(手动输入DDAP)-p(手动输入DDAP)登入,以下是dda...
我本意是想先手动输入root的的密码,root用户登入后创建用户DDAP和数据库DDAP,
然后mysql -u(手动输入DDAP) -p(手动输入DDAP) 登入,
以下是ddap-mysql.sh脚本内容:
#!/bin/sh
echo "please input root password"
mysql -uroot -p$1 << EOF
\. /usr/src/DDAP-1.CreateUser.SQL
\. /usr/src/DDAP-2.CreateDatabase.SQL
mysql -uDDAP -p$2
\. /usr/src/DDAP-3.CreateTable.SQL
\. /usr/src/DDAP-4.CreateProcedureAndFunction.SQL
\. /usr/src/DDAP-5.CreateData.SQL
EOF
但是只有root用户有输入,mysql -uDDAP -p$2 这一行就输入不了
[root@localhost src]# sh ./ddap-mysql.sh
please input root password
Enter password:
[root@localhost src]# 展开
然后mysql -u(手动输入DDAP) -p(手动输入DDAP) 登入,
以下是ddap-mysql.sh脚本内容:
#!/bin/sh
echo "please input root password"
mysql -uroot -p$1 << EOF
\. /usr/src/DDAP-1.CreateUser.SQL
\. /usr/src/DDAP-2.CreateDatabase.SQL
mysql -uDDAP -p$2
\. /usr/src/DDAP-3.CreateTable.SQL
\. /usr/src/DDAP-4.CreateProcedureAndFunction.SQL
\. /usr/src/DDAP-5.CreateData.SQL
EOF
但是只有root用户有输入,mysql -uDDAP -p$2 这一行就输入不了
[root@localhost src]# sh ./ddap-mysql.sh
please input root password
Enter password:
[root@localhost src]# 展开
2个回答
展开全部
你没有理解输入重定向的概念。在你上面的代码中,mysql -uDDAP -p$2是包含在输入重定向范围内的,所以不会提示你输入密码的。
你的$1 和$2也没有定义,可以参考如下写法:
#!/bin/sh
read -p "please input root password" pwd
mysql -uroot -p$pwd << EOF
\. /usr/src/DDAP-1.CreateUser.SQL
\. /usr/src/DDAP-2.CreateDatabase.SQL
\. /usr/src/DDAP-3.CreateTable.SQL
\. /usr/src/DDAP-4.CreateProcedureAndFunction.SQL
\. /usr/src/DDAP-5.CreateData.SQL
EOF
你的$1 和$2也没有定义,可以参考如下写法:
#!/bin/sh
read -p "please input root password" pwd
mysql -uroot -p$pwd << EOF
\. /usr/src/DDAP-1.CreateUser.SQL
\. /usr/src/DDAP-2.CreateDatabase.SQL
\. /usr/src/DDAP-3.CreateTable.SQL
\. /usr/src/DDAP-4.CreateProcedureAndFunction.SQL
\. /usr/src/DDAP-5.CreateData.SQL
EOF
更多追问追答
追问
你的意思我懂 ,你的这个我自己可以实现 ,但是问题是我是想操作两个mysql命令,即下面几个
DDAP-3。。。DDAP-4。。。DDAP-5。。。 这几个sql语句用mysql -uDDAP -p$2 登入 进去,这个用户:DDAP 是在DDAP-1.CreateUser.SQL定义的
追答
这个分开写就好了嘛。。
#!/bin/sh
read -p "please input root password" pwd
mysql -uroot -p$pwd << EOF
\. /usr/src/DDAP-1.CreateUser.SQL
\. /usr/src/DDAP-2.CreateDatabase.SQL
EOF
read -p "please input DDAP password" pwd2
mysql -uDDAP -p$pwd2 <<EOF
\. /usr/src/DDAP-3.CreateTable.SQL
\. /usr/src/DDAP-4.CreateProcedureAndFunction.SQL
\. /usr/src/DDAP-5.CreateData.SQL
EOF
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询