Bash mongo eval不计算通过env变量给出的eval表达式
我试图创建一个“包装器”bash别名函数来评估mongo代码段Bash mongo eval不计算通过env变量给出的eval表达式,bash,mongodb,environment-variables,eval,mongo-shell,Bash,Mongodb,Environment Variables,Eval,Mongo Shell,我试图创建一个“包装器”bash别名函数来评估mongo代码段 alias mongoshelleval=mongoshelleval mongoshelleval(){ mongo --verbose --eval $1 $db } 我将代码片段存储为env变量 export delsessions='"db.sessions.drop()"' 我执行这件事 mongoshelleval $delsessions 但它没有进行手术。只是 $mongoshelleval$d
alias mongoshelleval=mongoshelleval
mongoshelleval(){
mongo --verbose --eval $1 $db
}
我将代码片段存储为env变量
export delsessions='"db.sessions.drop()"'
我执行这件事
mongoshelleval $delsessions
但它没有进行手术。只是
$mongoshelleval$delsessionsMongoDB外壳版本:2.4.8
8月7日星期四03:50:18.809版本阵列测试通过
连接到:db
星期四8月7日03:50:18.861创建到以下位置的新连接:127.0.0.1:27017
8月7日星期四03:50:18.867背景工作开始:连接BG
8月7日星期四03:50:18.870已连接连接
db.sessions.drop()
Thu Aug 07 03:50:18.880释放1个未收集的类mongo::DBClientWithCommands对象 没有任何错误。只需打印回参数
db.sessions.drop()
会议还在那里
$mongoshellMongoDB外壳版本:2.4.8
连接到:db
db.sessions.find()
{“_id”:“yr5rxguSbb32Q880Jj36Rq2_uU
{“_id”:“9PQh_ml5gloaunv6pbgvevm_6
{“_id”:“OacGUyf-V1DcTQIg3lMgFXUL-N
{“_id”:“GC7gh09iqVUny9HM8gnGl9Hzxt
{u id:“\u f4koe0tagj7vwuuu76batcdeeb
{“_id”:“t1CX_eqi7FcCREfBB2X5CpgOcz
为什么它不执行我希望它执行的操作,如果它不执行查询,为什么它不抛出任何错误?您有一对额外的引号。试试看
export delsessions="db.sessions.drop()"
例如,以下内容适合我
mongo> db.sessions.find()
{ "_id" : ObjectId("53e5078d5b8b40be16223165"), "a" : 1 }
mongo> exit
bye
bash$ export test="db.sessions.drop()"
bash$ mongo --eval $test
MongoDB shell version: 2.6.3
connecting to: test
true
bash$ mongo
mongo> db.sessions.find()
// nothing
为了更加清晰,我增加了>和$提示,说明我是在mongo shell中还是在bash shell中