将变量插入 bash 脚本 mongodb 命令 heredoc



我正在bash脚本中对mongodb运行一些命令,但需要在heredoc文本中插入一个字符串。我无法正确插入值。这将如何完成?

today=`date -d "00:00:00" +%s`
todaytime=$(($today*1000))
mongo <<EOF > test
    use log
    db.translogs.remove("{Dt: {$lt: new Date($todaytime)}}")
    exit
EOF
我不知道

mongodb,但看起来$lt是查询的一部分,而不是shell变量。 但是在您的代码中,shell 在将 here-doc 传递给 mongo 之前尝试扩展它。 所以我认为你需要做的就是逃离$lt $

今天='日期 -d "00:00:00" +%s'今天时间=$(($today*1000))蒙戈测试    使用日志    db.translogs.remove("{Dt: {\$lt: new Date($todaytime)}}")    退出EOF学位

如果我在上面的代码中将mongo替换为cat,我们将在test文件中看到要发送到mongo的命令为:

    使用日志    db.translogs.remove("{Dt: {$lt: new Date(1393315200000)}}")    退出

最新更新