从 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。
我想创建一个 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。