2013-03-21 94 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。