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 파일이 스크립트의 동일한 경로에서 발견됩니까?
** $name
var는 큰따옴표로 묶여 있습니다 '
. 이는 변수가 변수가 아닌 문자열로 처리된다는 의미입니다.
스크립트는 다음과 같이 다시 작성할 수 있습니다.
#!/bin/bash
echo name
read name
sqlite3 ./arch.db <<EOF
.headers on
select type, number, address from documents where name = "$name";
EOF