Shell脚本使用--eval打印非预期的值来输出

时间:2018-01-26 04:06:38

标签: javascript mongodb shell eval

我正在尝试将shell脚本中的变量传递给mongo(javascript)脚本,同时将其踢掉。我读到的一切都说你可以在命令行中使用--eval传递这些变量。这很好用,但输出总是打印我的第二个--eval变量打印出来......

Shell脚本

#!/bin/bash
foo = "10"
mongo --quiet --eval "start = '$foo'" mongoScript.js 

输出

10
ID,Time,Local
035435406354,13:01:01,MST
035435406354,13:01:01,MST

问题是eval现在返回一个值,所以这会打印到我的输出。我该如何压制这个?

1 个答案:

答案 0 :(得分:0)

在网上进行了足够的搜索之后,我发现如果我在--eval(var)中声明变量,它就不会在输出中打印变量的值。

<强>解决方案

#!/bin/bash
foo = "10"
mongo --quiet --eval "var start = '$foo'" mongoScript.js

这为我提供了预期的输出,但没有显示带有start

值的额外行

<强>输出

ID,Time,Local
035435406354,13:01:01,MST
035435406354,13:01:01,MST