有问题:
local stat = assert(os.execute("/usr/bin/pgrep -f 'tail -F /opt/aaa' >& /dev/null"))
print(stat) --> 0
但是当我在bash中键入pgrep -f 'tail -F /opt/aaa' >& /dev/null
,然后调用echo $?
时它会返回1.有没有人遇到过这个,或者知道原因;-)发生了什么?
答案 0 :(得分:3)
对我来说似乎不是Lua问题,os.execute
只是打电话给system
:
static int os_execute (lua_State *L) {
lua_pushinteger(L, system(luaL_optstring(L, 1, NULL)));
return 1;
}
如果您尝试使用C
替代品,则会得到正确的结果代码吗?
#include <stdio.h>
#include <string.h>
int main ()
{
char command[100];
int result;
strcpy( command, "/usr/bin/pgrep -f 'tail -F /opt/aaa' >& /dev/null" );
result = system(command);
return(0);
}