2013-03-21 47 views
0

我是shell脚本世界的新手。在Bash Shell脚本中的数据库访问

我写了一个bash shell脚本。

脚本的名称是new.sh

Select T1.date as dateFact, 
T2.idmfg as idMfg, 
T1.id as userId, 
FROM Table1 T1 
JOIN 
Table2 T2 
ON 
T1.id=T2.id 
WHERE 
T1.date ='${Date}' 
T2.idmfg='${idMfg}'; 

在运行new.sh,我想手动输入DateidMfg。例如。

sh new.sh -d 2013-03-20 -i 201 

其中,Date2013-03-20idMfg201

我该怎么办?

预先感谢您。

回答

3
#!/bin/bash 

Date="$1" 
idMfg="$2" 

mysql<<EOF 
SELECT T1.date AS dateFact, T2.idmfg AS idMfg, T1.id AS userId 
FROM Table1 T1 
JOIN Table2 T2 
ON T1.id=T2.id 
WHERE T1.date = "${Date}", T2.idmfg = "${idMfg}"; 
EOF 

用法:

./new.sh 2013-03-20 201 

再往前走,如果你想命名的交换机,请参阅教程:http://wiki.bash-hackers.org/howto/getopts_tutorial例子:http://mywiki.wooledge.org/BashFAQ/035

+1

+1的剧本,但他从未提及MySQL的:) – tink 2013-03-21 22:44:00

+0

我怎么能把它放在案例如 case $ $ d)date =“$ {date}” i)idmfg =“$ {idMfg}” esac; 所以我可以这样运行:new.sh -d 2013-03-20 -i 201 – Mario 2013-03-21 23:49:07

+0

使用回答 – 2013-03-22 05:44:40

0
new.sh 2013-03-20 201 

脚本里面的第一个(日期)参数是$ 1,第二个$ 2。