Lua io.popen():lines()忽略第一个非空行

Lua io.popen():lines()忽略第一个非空行,lua,popen,Lua,Popen,我有一个shell脚本,其输出如下: 1 Space Cruise (Title) Ben Prunty Music FTL 46.4 mymplayer = { track="", title="", artist="", album="", time="" } <empty line> Space Cruise (Title) Ben Prunty Music FTL 46.4 现在我想将这些线映射到如下数组: 1 Space Cruise (Title) Ben Prun

我有一个shell脚本,其输出如下:

1
Space Cruise (Title)
Ben Prunty Music
FTL
46.4
mymplayer = { track="", title="", artist="", album="", time="" }
<empty line>
Space Cruise (Title)
Ben Prunty Music
FTL
46.4
现在我想将这些线映射到如下数组:

1
Space Cruise (Title)
Ben Prunty Music
FTL
46.4
mymplayer = { track="", title="", artist="", album="", time="" }
<empty line>
Space Cruise (Title)
Ben Prunty Music
FTL
46.4
因此,我使用io.popen()如下(用于测试目的):

问题在于,它具有以下输出:

Space Cruise (Title)
Ben Prunty Music
FTL
46.4
现在,如果我让脚本的输出以换行符开始,输出如下:

1
Space Cruise (Title)
Ben Prunty Music
FTL
46.4
mymplayer = { track="", title="", artist="", album="", time="" }
<empty line>
Space Cruise (Title)
Ben Prunty Music
FTL
46.4

太空巡航(标题)
本·普朗蒂音乐
超光速
46.4

我做错了什么?

可能是
mplayerout.sh
的第一行输出以回车(
“\r”
)结束,而其他输出以换行(
“\n”
“\r\n”
)结束

然后初始的
“1”
仍将在输出中,但
“\r”
将导致终端用以下字符覆盖它

您可以使用
print(string.format(“%q”,l))
看到这一点。如果第一行中嵌入了
“\r”
,则输出将为:

"1\rSpace Cruise (Title)"
"Ben Prunty Music"
"FTL"
"46.4"

好吧,我发现了问题。在Python中执行同样的操作时,我得到了第一行,但是是3281个空字节(
'\x00'
),后跟
'\x02\n'

看起来问题出在脚本中