我正在尝试使用bash脚本中的参数化mongodb脚本文件打印的结果。
呼叫看起来像这样:
mongo --quiet server/db --eval "a='b'" mongoscript.js
在mongoscript.js内部有一个打印语句,它打印了我想在我的shell脚本中使用的值" foo"。问题是,当我执行上述语句时,我会得到:
b
foo
而不仅仅是'foo'
因此,如果我做
res=`mongo --quiet server/db --eval "a='b'" mongoscript.js`
res都包含两行。
我当然可以用
解决这个问题res=`mongo ... |tail -n 1`
,但我希望有一种更通用的方法可以避免这种多余的输出。
谢谢!
多余的输出是您分配a='b'
的结果,它在此上下文中显示分配的结果。
如果添加了var
关键字以进行可变分配,则不应有任何额外的输出(并且仍然可以在脚本中使用变量a
):
$ mongo --quiet --eval "var a='b'" mongoscript.js
foo
您可以在mongo
Shell中看到相同的行为:
> a='b'
b
> var a='b'
>