是否可以以编程方式输入一些repl(比如说mongo
),并以编程方式与它进行交互?也就是说,你能以编程方式做到这一点:
$ mongo
MongoDB shell version: 2.4.8
connecting to: test
> db.collections
test.collections
> exit
bye
所有这一切都是:
mongo
命令登录REPL。我知道有可能以某种方式做到这一点,我已经看到它已经完成create interactive REPL's in the Node.js world。了解如何直接在bash中执行此操作会很有帮助。db.collections
,只是探索了REPL。这个问题是问,你能以编程方式这个吗?或许你可以(a)从bash脚本创建子进程/ REPL,然后(b)发送它评估的db.collections
这样的任意消息。 (你可以得到回复/输出)。这可能吗?
答案 0 :(得分:1)
您可以编写一个expect脚本,它将以交互方式为您输入这些命令。我不是一个普通的期望用户,但我认为它应该是这样的:
#!/usr/bin/expect
mongo
set timeout 10
expect "MongoDB shell version: 2.4.8"
send "db.collections"
expect "test.collections"
send exit
有很多例子可以让你轻松创建一个最小的工作示例。