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

标签 linux bash mongodb shell

我希望创建一个连接到远程 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/

相关文章:

node.js - 返回数组值的匹配记录并按 Mongoose 中的其他属性分组?

c - 什么时候 preempt_count() & PREEMPT_ACTIVE == 0?

无法删除(rm)c程序中的文件但可以在shell中

node.js - 类型错误 : object is not a function in using MongoDB with Node. js

node.js - MongoDB 搜索用户 : filter based on name with regex

bash - bash命令行标准输入如何传播到子进程

linux - 由于Cordova和Node.js无法安装Audacity?

linux - 在 bash shell 中使用 cp 命令时如何获取已复制文件的列表?

bash - 如何将字段名称设置为文件名bash/awk

bash - 如何在有条件的情况下使用 bash 返回码?