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/null、bash と入力して呼び出すと、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 に答える