我有500个数据库的文件夹。我想从他们那里获得价值。在for循环中ATTACH'$ i'AS db2;不行。如果我写入文件夹的名称而不是$ i代码是可行的。
如何将db_name设为varible
#!/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 ----------"
答案 0 :(得分:2)
您已通过引用heredoc标签禁用参数替换
请改用<<EOF
。
或者,直接打开数据库$i
并将abc.db3
附加到其中。