在Shell脚本中使用MongoDB的结果



我正在尝试使用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'
>

相关内容

  • 没有找到相关文章

最新更新