从bash脚本将命令传递给Mongo shell,而不停止交互式Mongo shell

Tom*_*llo 6 linux bash shell mongodb

我想创建一个bash脚本连接到一个远程Mongo数据库并初始化一个交互式Mongo shell,向交互式Mongo shell发出几个命令,然后使交互式shell继续运行,以便我可以继续输入命令它.

目前,据我所知,我可以连接到Mongo数据库并在bash脚本中向它发出命令,如下所示:

mongo <ip>:<port>/<database> --eval "db.auth('myuname', 'mypass');"
Run Code Online (Sandbox Code Playgroud)

但是,我希望我的bash脚本运行上面的命令,然后保持已初始化的Mongo shell运行,以便我可以继续使用它并自己输入命令.似乎在运行上面的命令之后,创建一个Mongo shell,然后在执行给定db.auth()命令后立即停止,但是我想保持shell运行超过这一点.

wdb*_*ley 6

--shell除选项外,请使用该--eval选项.这将在--eval代码运行后以交互模式保持mongo shell会话打开:

mongo --shell --eval "printjson('Hello, World!')"
Run Code Online (Sandbox Code Playgroud)

您还可以将命令放入,~/.mongorc.js并且/etc/mongorc.jsshell将在当前用户启动或每次启动时分别运行.请参阅mongo shell文档的files部分.