2013-03-21 2 views
0

쉘 스크립팅 환경에 익숙하지 않습니다.Bash 쉘 스크립팅의 데이터베이스 액세스

나는 bash 쉘 스크립트를 작성했습니다. 스크립트의

이름 new.sh을 실행하는 동안, 나는 수동 DateidMfg을 입력합니다

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입니다. 예 :

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

, Date2013-03-20하고 idMfg201입니다.

어떻게하면됩니까?

미리 감사드립니다.

답변

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

일을하지만 그는 MySQL의 : – tink

+0

을 언급 한 적이 어떻게하면 케이스 안에 넣을 수 있습니까? 케이스 $ 옵션 에 있음) 날짜 = "$ {날짜}" i) idmfg = "$ {idMfg}" esac; 그래서 실행할 수 있습니다 : new.sh -d 2013-03-20 -i 201 – Mario

+0

답변에 언급 된 getopts 튜토리얼을 사용하십시오. –

0
new.sh 2013-03-20 201 

스크립트 내에서 첫 번째 (날짜) 매개 변수는 $ 1이고 두 번째 $ 2입니다.