我正在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)}}") 退出