Bash Sqlite3可怕

时间:2017-12-07 10:15:46

标签: bash sqlite sh

我有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 ----------"   

1 个答案:

答案 0 :(得分:2)

您已通过引用heredoc标签禁用参数替换 请改用<<EOF

或者,直接打开数据库$i并将abc.db3附加到其中。