如何在MongoDB Shell中从与脚本相同的目录中加载文件

问题描述

我正在运行一个bash脚本,该脚本在Mongo shell中执行一个javascript文件:

outerscript.sh

SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
LOGDIR=~/logs
LOGFILE=$LOGDIR/outerscript.log
mongo < $SCRIPTPATH/jsscript.js >> $LOGFILE 2>&1

jsscript.js

load(myVars.js);

MongoDB是v4.0.19

该脚本可以在本地或远程服务器上运行,并且可以从命令行或cron作业运行,并且我想加载myVars.js,该文件始终与externalscript.sh放在同一文件夹中

从cron作业运行externalscript.sh时,我找不到加载myVars.js的方法。

pwd()返回用户的主目录,而不是当前正在运行的脚本的位置,因此对cron作业不起作用:

load(pwd() + '/myVars.js');

对于cron作业,这也不起作用,我猜也是出于相同的原因:

load('./myVars.js');

或者,还有另一种将变量传递到我的JavaScript文件中的方法,该方法仍然可以让我将输出记录到日志文件中?据我所知,您不能将--eval与将输出记录到文件中结合使用,而且我还没有找到直接从JS文件内部读取环境变量的方法。

谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)