Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash mongo eval不计算通过env变量给出的eval表达式_Bash_Mongodb_Environment Variables_Eval_Mongo Shell - Fatal编程技术网

Bash mongo eval不计算通过env变量给出的eval表达式

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

我试图创建一个“包装器”bash别名函数来评估mongo代码段

alias mongoshelleval=mongoshelleval
mongoshelleval(){
    mongo --verbose --eval $1 $db
    }
我将代码片段存储为env变量

export delsessions='"db.sessions.drop()"'
我执行这件事

mongoshelleval $delsessions
但它没有进行手术。只是

$mongoshelleval$delsessions
MongoDB外壳版本: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()

会议还在那里

$mongoshell
MongoDB外壳版本: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中