2014-11-03 5 views
3

내 bash 스크립트는 일부 데이터 입력을 sqlite 데이터베이스로 자동화합니다. 내가 마주 치게되는 문제는 데이터베이스 설정을 변경할 때마다 다음 명령을 실행할 때 변경 사항이 손실된다는 것입니다. 예제에서는이를 설명합니다. 다음과 같이sqlite3 및 bash, 데이터베이스 설정

sqlite3 Correlate.db ".mode csv" 
sqlite3 Correlate.db ".output Correlated.csv" 
sqlite3 Correlate.db "SELECT * FROM ALL_Data; 
sqlite3 Correlate.db ".show" 

.show의 최종 결과는 다음과 같습니다

 echo: off 
    explain: off 
    headers: off 
    mode: list 
nullvalue: "" 
    output: stdout 
separator: "|" 
    stats: off 
    width: 

나의 또한 손실 된 CSV로 출력 모드를 변경하는 것으로 보인다 내 출력 파일은 표준 출력이 인쇄되는 경우에도 데이터가 없습니다 내가보고 싶은 데이터. 그것을 호출 할 때마다 데이터베이스 설정이 재설정됩니까? 나는 오히려 혼란스러워!

답변

4

내가 sqlite3의 한 인스턴스에 여러 명령을 보내려면이 같은 것을 시도 할 것이다 :

sqlite3 Correlate.db <<EOF 
.mode csv 
.output Correlated.csv 
SELECT * FROM ALL_Data; 
.show 
EOF 

당신은 또한 파일에이 명령을 넣고 sqlite3로 리디렉션 할 수 있습니다 예 :

sqlite3 Correlate.db < commandfile 
+0

별도의 SQL 스크립트 파일을 사용하려고했지만 bash에서 변수를 사용해야했습니다. 구문 오류가 수정되면 첫 번째 제안은 완벽하게 작동합니다. 당신의 도움을 주셔서 감사합니다!!! – billings23489

관련 문제