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