Javascript 从shell脚本向js脚本传递变量

Javascript 从shell脚本向js脚本传递变量,javascript,mongodb,shell,args,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 /t

我有下面的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
你可以用

--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

要向javascript文件传递其他变量,请使用process.argv。是指向node js文档的链接。

可能重复