有一个问题:
local stat = assert(os.execute("/usr/bin/pgrep -f 'tail -F /opt/aaa' >& /dev/null"))
print(stat) --> 0
但是当我输入pgrep -f 'tail -F /opt/aaa' >& /dev/null
bash,然后调用echo $?
它时返回 1。以前有没有人遇到过这种情况,或者知道原因;-) 发生了什么?
有一个问题:
local stat = assert(os.execute("/usr/bin/pgrep -f 'tail -F /opt/aaa' >& /dev/null"))
print(stat) --> 0
但是当我输入pgrep -f 'tail -F /opt/aaa' >& /dev/null
bash,然后调用echo $?
它时返回 1。以前有没有人遇到过这种情况,或者知道原因;-) 发生了什么?
对我来说似乎不是 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);
}