sqlite 명령을 위한 Bash 스크립트

sqlite 명령을 위한 Bash 스크립트

sqlite 쿼리에 변수를 사용해야 하는 bash 스크립트를 실행하고 싶습니다.

저는 스크립팅에 대한 실제 경험이 없습니다. 어쨌든 다음과 같은 것을 시도했지만 작동하지 않습니다. 오류도 발생하지 않고 아무것도 표시되지 않습니다.

#!/bin/bash
echo name   
read name   
sqlite3 /arch.db << 'EOF'
.headers on
select type, number, address from documents where name = '$name';
EOF

도움을 주시면 감사하겠습니다.

답변1

스크립트에 응답하기 전에 경로가 올바른지 확인하세요. 이 경로는 루트에서 검색하는 것을 sqlite3 /arch.db의미합니다 .arch.db/

어쩌면 당신은 의미합니까 ./arch.db? 그러면 sqlite db 파일이 스크립트의 동일한 경로에서 발견됩니까?

** $namevar는 큰따옴표로 묶여 있습니다 '. 이는 변수가 변수가 아닌 문자열로 처리된다는 의미입니다.

스크립트는 다음과 같이 다시 작성할 수 있습니다.

#!/bin/bash
echo name   
read name   
sqlite3 ./arch.db <<EOF
.headers on
select type, number, address from documents where name = "$name";
EOF

관련 정보