从shell脚本将变量传递给js脚本

时间:2015-02-19 19:54:01

标签: javascript mongodb shell args

我有以下shell脚本,它启动了针对mongo db的js脚本我想将一个变量传递给js文件。第二个警告是我需要将这个变量存储在unix框的某个地方作为脚本的最后运行时间。任何帮助或指示表示赞赏。

# check if previous job still running
if [ -f /tmp/mapreduce_compound.lck ]
then
    exit
else
   # if no lock file present, create one
   touch /tmp/mapreduce_compound.lck
fi

mongo -u xxx mongo1.pilot.dice.com:27017/tracking /usr/local/gemini/mongodb/tracking/mapReduceFunctionsByGroupIdIterative.js > /tmp/mapReduceFunctionsByGroupIdIterative.txt 2>&1


#remove lock file
rm /tmp/process_nightly.lck

2 个答案:

答案 0 :(得分:0)

您可以使用

--eval 'var param="$yourparam";'

传递参数。

注意:这不是传递参数那么多定义你的脚本可以使用的变量,但它可以解决这个问题。

因此,如果您想传递shell脚本的第一个参数,可以执行以下操作:

# check if previous job still running
if [ -f /tmp/mapreduce_compound.lck ]
then
    exit
else
   # if no lock file present, create one
   touch /tmp/mapreduce_compound.lck
fi

MONGOARG=$1
echo $MONGOARG > lastargcalled

mongo -u xxx --eval 'var param="$MONGOARG";' mongo1.pilot.dice.com:27017/tracking /usr/local/gemini/mongodb/tracking/mapReduceFunctionsByGroupIdIterative.js > /tmp/mapReduceFunctionsByGroupIdIterative.txt 2>&1


#remove lock file
rm /tmp/process_nightly.lck

答案 1 :(得分:0)

要将其他变量传递到javascript文件,请使用process.argvHere是节点js文档的链接。