0
私は500データベースを持つフォルダを持っています。私は彼らから価値を得たいと思う。 forループの内側には「$ i」というdb2があります。うまくいかない。 $ iの代わりにフォルダの名前に書き込むと、コードが動作します。あなたはヒアドキュメントラベルを引用することによって無効にパラメータ置換を持つvaribleBash Sqlite3 Varrible
#!/bin/bash
clear
for i in $(ls); do
if [[ $i != test.sh ]]; then
if [[ $i != abc.db3 ]]; then
echo "--------- " $i " ---------"
sqlite3 abc.db3 <<'EOF'
ATTACH '$i' AS db2;
INSERT INTO Test (userId, sender, date) SELECT user_id, sender, send_date FROM db2.mt;
EOF
fi
fi
done
echo "-------- Finish ----------"
実際に失敗するSQLコマンドは何ですか? –
問題はファイル名にはなりません。このように使用すると、ATTACH '1208-2015.db3' AS db2; – aahmetbas