在Lua中强制执行(输入)os.execute()

时间:2015-03-15 20:08:27

标签: email lua send freebsd enter

我想在os.execute()中强制输入。我在FreeBSD上使用Lua,我想写一封电子邮件。

如果我写这个:

os.execute('mail -v -s \'Hello Im the Topic\' mail@hotmail.de')
os.execute('Hello this should be the message')
os.execute('.')

它不起作用,我收到一封没有任何内容的电子邮件,只是主题来了。另外,我在freebsd中遇到了一些错误('你好,这应该是消息'没有命令...... blabla)

所以我想在一个os.execute中强制(输入)。 我试过了:

os.execute('mail -v -s \'Hello Im the Topic\' mail@hotmail.de\nHello this should be a message\n.')

os.execute('mail -v -s \'Hello Im the Topic\' mail@hotmail.de\
Hello this should be a message\
.')

但两者都不起作用。

1 个答案:

答案 0 :(得分:3)

使用io.popen打开要执行的命令的管道,并将要发送的数据写入其中:

local f=io.popen('mail -v -s \'Hello Im the Topic\' mail@hotmail.de','w')
f:write[[
Hello this should be a message
.
]]
f:close()