繁体   English   中英

在Linux Shell中运行MongoDB命令的错误替换

[英]Bad substitution running MongoDB commands in linux shell

我正在尝试创建一个简单的bash脚本来测试MongoDB查询的返回值。 Mongo脚本本身返回期望值。 但是,如果我尝试将查询脚本放入$ {},则会收到“错误替换”错误。 有任何想法吗 ?

#!/bin/bash

#This line returns the number 1 (expected value)
mongo dbName --eval 'db.dbCollection.find({"updatedAt":{"$gt":ISODate("2019-01-31T00:00:00.000Z")}}).count()'

#Trying run from inside a "${}" returns the error
counter=${"mongo dbName --eval db.dbColection.find({'updatedAt':{'$gt':ISODate('2019-01-31T00:00:00.000Z')}}).count()"}

提前致谢

尝试这个

counter=$(mongo dbName --eval db.dbColection.find({'updatedAt':{'$gt':ISODate('2019-01-31T00:00:00.000Z')}}).count()")

我终于找到了答案。 该行将期望值返回给var:

counter=$(mongo dbName --eval 'db.dbCollection.find({"updatedAt":{"$gt":ISODate("2019-01-31T00:00:00.000Z")}}).count()')

换句话说,我用简单的引号将Mongo命令括起来,并在命令内部使用了双引号。 而且,我使用括号而不是花括号。 而已 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM