[英]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.