从bash脚本向Mongo shell传递命令而不中断交互式Mongo shell

7
我希望您创建一个bash脚本,用于连接到远程Mongo数据库并初始化交互式Mongo shell,向交互式Mongo shell发出一些命令,然后使交互式shell继续运行,以便我可以继续输入命令。
目前,我了解到在bash脚本中可以像这样连接到Mongo数据库并向其发出命令:
mongo <ip>:<port>/<database> --eval "db.auth('myuname', 'mypass');"

然而,我希望我的bash脚本能够运行上述命令,并保持已初始化的Mongo shell运行,以便我可以继续使用它并自己输入命令。似乎在运行上述命令之后,会创建一个Mongo shell,并在执行给定的db.auth()命令后立即停止,但我希望在此点之后继续保持shell运行。
1个回答

8

除了使用--eval选项外,还需使用--shell选项。这将在运行--eval代码后保持mongo shell会话处于交互模式:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接