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



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

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

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

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

除了--eval选项外,还可以使用 --shell 选项。这将在运行--eval代码后使 mongo shell 会话以交互模式保持打开状态:

mongo --shell --eval "printjson('Hello, World!')"

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

相关内容

最新更新