3

これを理解できません。コマンドをシェルで直接実行すると、正常に実行されますが、スクリプトファイルから実行すると、次のエラーが発生します。

sqlite3: エラー: オプションが多すぎます: "INTO"

#!/bin/bash
sql="\"INSERT INTO keys ('date','chan','key','name','desc','ser','ep','cat') VALUES('xxx','xxx','xxxx','xxxx','xxxxx.','xxx','xxx','xxxx');\""      
echo $sql
sqlite3 mydb.db $sql

問題が何であるかについてのアイデアはありますか?

4

2 に答える 2

2

$sqlスクリプト内の変数を二重引用符で囲みます。

#!/bin/bash
sql="\"INSERT INTO keys ('date','chan','key','name','desc','ser','ep','cat') VALUES('xxx','xxx','xxxx','xxxx','xxxxx.','xxx','xxx','xxxx');\""      
echo $sql
sqlite3 mydb.db "$sql"
于 2013-10-14T13:00:50.770 に答える
0

私の場合、問題は実行するバイナリにありました。

cat  /opt/sbin/sqlite3:
#!/bin/sh
export LD_LIBRARY_PATH="/opt/lib:$LD_LIBRARY_PATH"
/opt/sbin/sqlite3.real $@

したがって、/opt/sbin/sqlite3.real を実行しても問題はありません。

于 2016-04-25T03:35:48.500 に答える