3

有一个问题:

 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/nullbash,然后调用echo $?它时返回 1。以前有没有人遇到过这种情况,或者知道原因;-) 发生了什么?

4

1 回答 1

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);
  } 
于 2013-10-26T13:09:08.960 回答