2015-01-30 17 views
5

Tôi đang tìm cách tạo một tập lệnh bash kết nối với cơ sở dữ liệu Mongo từ xa và khởi tạo một trình bao Mongo tương tác, đưa ra một vài lệnh cho trình Mongo tương tác và sau đó cho phép trình bao tương tác tiếp tục chạy để tôi có thể tiếp tục nhập các lệnh vào đó.Chuyển các lệnh tới Mongo shell từ bash script mà không cần tạm dừng shell Mongo tương tác

Hiện nay, tôi hiểu rằng tôi có thể kết nối với một cơ sở dữ liệu Mongo và ban hành một lệnh để nó trong một kịch bản bash như vậy:

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

Tuy nhiên, tôi muốn kịch bản bash của tôi để chạy lệnh trên, và sau đó giữ vỏ Mongo được khởi chạy để tôi có thể tiếp tục sử dụng nó và nhập các lệnh vào nó một mình. Có vẻ như sau khi chạy lệnh trên, một trình bao Mongo được tạo ra và sau đó tạm dừng ngay lập tức sau khi lệnh được đưa ra db.auth() được thực thi, nhưng tôi muốn giữ cho trình bao chạy qua điểm này.

Trả lời

4

Sử dụng tùy chọn --shell ngoài tùy chọn --eval. Điều này sẽ giữ phiên Mongo vỏ mở trong chế độ tương tác sau khi mã --eval được điều hành:

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

Bạn cũng có thể đặt lệnh trong ~/.mongorc.js/etc/mongorc.js rằng vỏ sẽ chạy khi nó được bắt đầu bởi người sử dụng hiện tại hoặc mỗi lần nó được bắt đầu, tương ứng. Xem files section tài liệu vỏ mongo.

+0

Cảm ơn bạn! Điều này thật đúng với gì mà tôi đã tìm kiếm. –

Các vấn đề liên quan