我希望创建一个连接到远程 Mongo 数据库并初始化交互式 Mongo shell 的 bash 脚本,向交互式 Mongo shell 发出几个命令,然后使交互式 shell 继续运行,以便我可以继续输入命令。
目前,我知道我可以连接到 Mongo 数据库并在 bash 脚本中向它发出命令,如下所示:
mongo <ip>:<port>/<database> --eval "db.auth('myuname', 'mypass');"
但是,我希望我的 bash 脚本运行上述命令,然后保持初始化的 Mongo shell 运行,以便我可以继续使用它并自行输入命令。似乎在运行上述命令后,会创建一个 Mongo shell,然后在执行给定的 db.auth()
命令后立即停止,但我想保持 shell 运行超过这一点。
最佳答案
使用 --shell
除了 --eval
选项之外的选项。这将在 --eval
代码运行后保持 mongo shell session 以交互模式打开:
mongo --shell --eval "printjson('Hello, World!')"
您也可以在 ~/.mongorc.js
和 /etc/mongorc.js
中放置命令,这些命令会在当前用户启动 shell 时运行,或者每次启动时,分别。见 files section mongo shell 文档。
关于linux - 从 bash 脚本向 Mongo shell 传递命令,而不停止交互式 Mongo shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28245894/