从 bash 脚本向 Mongo shell 传递命令而不停止交互 Mongo shell

Pass commands to Mongo shell from bash script without halting interactive Mongo shell

我想创建一个 bash 脚本,它连接到一个远程 Mongo 数据库并初始化一个交互式 Mongo shell,向interactive Mongo shell,然后启用 interactive shell 继续 运行ning 以便我可以继续向其中输入命令。

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

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

不过,我希望我的bash脚本能运行上面的命令,然后保留运行初始化的Mongoshellning这样我就可以继续使用它并自己输入命令。似乎在 运行 执行上述命令后,创建了一个 Mongo shell,然后在执行给定的 db.auth() 命令后立即停止,但我想保留shell运行过了这个点。

除了 --eval 选项外,还使用 ​​--shell 选项。这将使 mongo shell 会话在 --eval 代码为 运行:

后以交互模式打开
mongo --shell --eval "printjson('Hello, World!')"

你也可以在~/.mongorc.js/etc/mongorc.js中输入命令,当shell被当前用户启动或每次启动时,shell都会运行,分别。请参阅 mongo shell 文档的 files section