标签: exec

如何在find中使用-exec中的管道

有没有办法在find中的-exec中使用管道?我不希望grep通过整个文件,但只能通过每个文件的第一行.

find /path/to/dir -type f -print -exec grep yourstring {} \;
Run Code Online (Sandbox Code Playgroud)

我试图用"cat"和"head -1"把管道放在那里,但是效果不好.我尝试以某种方式使用括号,但我没有设法弄清楚如何将它们放在那里.我非常感谢你的帮助.我知道如何在不使用find的情况下以其他方式解决问题,但是我们尝试在学校使用find和pipeline来实现它,但是无法管理如何操作.

find /path/to/dir -type f -print -exec cat {} | head -1 | grep yourstring \;
Run Code Online (Sandbox Code Playgroud)

这是我们如何尝试这样做,但无法管理括号,甚至可能.我试图通过网络查看,但无法找到任何答案.

unix pipe exec find

26
推荐指数
1
解决办法
2万
查看次数

PHP exec()作为后台进程(Windows Wampserver环境)

我正在尝试设置一个将触发后台进程的php触发器文件.(见这个问题)

我在Windows Wampserver环境中这样做.

所以例如我有trigger.php运行exec函数,该函数调用我的backgroundProcess.php解析和执行.

但问题是我的trigger.php文件正在等待exec()命令backgroundProcess.php在停止之前完成运行.后台进程运行大约20-30秒,并且trigger.php一直等待,直到backgroundProcess.php完全结束.

这有道理吗?这是trigger.php运行exec()命令的文件

exec('C:\wamp\bin\php\php'.phpversion().'\php.exe -f C:\path\to\backgroundProcess.php > C:\wamp\bin\php\php'.phpversion().'\dev\null &');
Run Code Online (Sandbox Code Playgroud)

基本上,我trigger.php只想触发backgroundProcess而不是等待它完成.


编辑

使用以下命令解决问题:

$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("C:\wamp\bin\php\phpVERSIONNUMBER\php-win.exe -f C:/wamp/www/path/to/backgroundProcess.php", 0, false);
Run Code Online (Sandbox Code Playgroud)

php exec background-process

25
推荐指数
2
解决办法
3万
查看次数

exec如何与当地人合作?

我以为这会打印3,但它打印1:

def f():
    a = 1
    exec("a = 3")
    print(a)
Run Code Online (Sandbox Code Playgroud)

python exec locals python-3.x

24
推荐指数
2
解决办法
9049
查看次数

检查进程是否仍在运行?

作为一种构建穷人监视器的方法,并确保应用程序重新启动以防它崩溃(直到我找出原因),我需要编写一个PHP CLI脚本,每隔5mn将由cron运行以检查进程是否正常还在运行

基于此页面,我尝试了以下代码,但即使我用伪造数据调用它也总是返回True:

function processExists($file = false) {
    $exists= false;
    $file= $file ? $file : __FILE__;

    // Check if file is in process list
    exec("ps -C $file -o pid=", $pids);
    if (count($pids) > 1) {
    $exists = true;
    }
    return $exists;
}

#if(processExists("lighttpd"))
if(processExists("dummy"))
    print("Exists\n")
else
    print("Doesn't exist\n");
Run Code Online (Sandbox Code Playgroud)

接下来,我尝试了这段代码 ......

(exec("ps -A | grep -i 'lighttpd -D' | grep -v grep", $output);)
print $output;
Run Code Online (Sandbox Code Playgroud)

......但是没有达到我的期望:

/tmp> ./mycron.phpcli 
Arrayroot:/tmp> 
Run Code Online (Sandbox Code Playgroud)

FWIW,此脚本使用PHP 5.2.5的CLI版本运行,操作系统是uClinux 2.6.19.3.

谢谢你的提示.


编辑:这似乎工作正常

exec("ps aux | grep …
Run Code Online (Sandbox Code Playgroud)

php linux process exec

24
推荐指数
4
解决办法
6万
查看次数

什么会导致exec失败?接下来发生什么?

exec(execl,execlp等)可能失败的原因是什么?如果您调用exec并返回,除了恐慌和调用exit之外,还有其他最佳实践吗?

c unix linux exec

24
推荐指数
3
解决办法
3万
查看次数

Python:如何将参数传递给函数的__code__?

以下作品:

def spam():
    print "spam"
exec(spam.__code__)
Run Code Online (Sandbox Code Playgroud)

垃圾邮件

但如果spam需要参数呢?

def spam(eggs):
    print "spam and", eggs
exec(spam.__code__)
Run Code Online (Sandbox Code Playgroud)

TypeError:spam()只需1个参数(给定0)

鉴于,我无法访问函数本身,只能访问代码对象,如何在执行代码对象时将参数传递给代码对象?是否可以使用eval?

编辑:由于大多数读者往往不相信这有用,请参阅以下用例:

我想将小Python函数保存到文件中,以便可以从另一台计算机中调用它们.(这里不用说这个用例严格限制了可能的功能.)pickle函数对象本身不起作用,因为这只保存了定义函数的名称和模块.相反,我可以腌制__code__功能.当我再次取消它时,当然对函数的引用消失了,这就是我无法调用该函数的原因.我只是在运行时没有它.

另一个用例:

我在一个文件中处理几个函数,计算一些数据并将其存储在硬盘上.计算会耗费大量时间,所以我不想每次都执行这些函数,但只有在函数的实现发生变化时才会执行.

我有一个版本的运行整个模块而不是一个功能.它通过查看实现模块的文件的修改时间来工作.但是如果我有许多我不想在单个文件中分离的函数,那么这不是一个选项.

python eval function exec parameter-passing

24
推荐指数
4
解决办法
9193
查看次数

如何用参数执行命令?

如何使用参数在Java中执行命令?

Process p = Runtime.getRuntime().exec(new String[]{"php","/var/www/script.php -m 2"});
Run Code Online (Sandbox Code Playgroud)

不行吗?

String[] options = new String[]{"option1", "option2"};
Runtime.getRuntime().exec("command", options);
Run Code Online (Sandbox Code Playgroud)

它是否也有效,因为它没有指定"m"参数.

java parameters exec runtime.exec

24
推荐指数
2
解决办法
4万
查看次数

在Python中,为什么函数中的exec中的导入不起作用?

我可以将一个import语句放在一个字符串中,执行它,它可以工作(打印一个随机数字):

code = """
import random
def f():
    print random.randint(0,9)
"""

def f():
    pass

exec code
f()
Run Code Online (Sandbox Code Playgroud)

现在,如果我把exec codef()自己的功能和调用它,这是行不通的.

def test():
    exec code
    f()

test()
Run Code Online (Sandbox Code Playgroud)

它说NameError: global name 'random' is not defined.知道发生了什么事吗?谢谢

python import function exec

24
推荐指数
3
解决办法
1万
查看次数

在函数的代码对象上使用Python exec时如何获取返回值?

出于测试目的,我想直接执行另一个函数内部定义的函数.

我可以通过父函数的代码(func_code)来获取子函数的代码对象,但是当我执行它时,我得不到返回值.

有没有办法从exec的代码中获取返回值?

python return function exec

24
推荐指数
5
解决办法
2万
查看次数

使用System.setOut()重定向Runtime.getRuntime().exec();

我有一个程序Test.java:

import java.io.*;

public class Test {
    public static void main(String[] args) throws Exception {
        System.setOut(new PrintStream(new FileOutputStream("test.txt")));
        System.out.println("HelloWorld1");
        Runtime.getRuntime().exec("echo HelloWorld2");
    }
}
Run Code Online (Sandbox Code Playgroud)

这应该将HelloWorld1和HelloWorld2打印到文件text.txt.但是,当我查看文件时,我只看到HelloWorld1.

  1. HelloWorld2去了哪里?它消失在空气中吗?

  2. 假设我想将HelloWorld2重定向到test.txt.我不能在命令中添加">> test.txt",因为我将得到一个文件已经打开错误.那我该怎么做?

java redirect runtime exec runtime.exec

23
推荐指数
2
解决办法
4万
查看次数