Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell awk中的背景函数_Shell_Awk - Fatal编程技术网

Shell awk中的背景函数

Shell awk中的背景函数,shell,awk,Shell,Awk,有没有办法在纯awk中向后台发送函数?例如: function one() { system("sleep 5") print("Hello from One") } function two() { system("sleep 5") print("Hello from Two") } BEGIN { one() two() } 正如预期的那样,发生了以下情况: <wait 5 seco

有没有办法在纯awk中向后台发送函数?例如:

function one() {
        system("sleep 5")
        print("Hello from One")
}

function two() {
        system("sleep 5")
        print("Hello from Two")
}

BEGIN {
        one()
        two()
}
正如预期的那样,发生了以下情况:

<wait 5 seconds>
Hello from One
<wait 5 seconds>
Hello from Two
我希望发生的是:

<wait 5 seconds>
Hello from One
Hello from Two
我想将函数发送到后台。这是可能的还是我必须在它周围创建一个bash包装器?谢谢大家!

awk是单线程的,无法同时运行多个代码

对于您的简单示例,您可以使用shell的背景:

function one() {
    system("(sleep 5; echo Hello from One) &");
}
function two() {
    system("(sleep 5; echo Hello from Two) &");
}

但是如果你想在后台运行AWK命令,你不能这么做。

嗯,很可能丹尼斯是正确的,AWK不是这个任务的正确工具:你可以考虑Perl或其他编程语言。 然而,如果你真的有心情玩云雀,你可以试着在子shell中运行你程序的一部分。至少GNU awk支持这种操作模式,请参阅


但是,即使调用一个由Python应用程序加载的C++库的java回调,也比你要做的暗力艺术更少。

从阅读你的问题中,我认为AWK可能不是你的意图的正确工具;试试python或类似的工具;-很抱歉没有回答您的问题,但我认为任何答案都太复杂,无法使用和调试…不。awk是一种用于读取文本文件的工具。shell是一个处理进程和文件的工具。从技术上讲,他可以。这只是awk的另一个例子:谢谢大家!那么,在这种情况下,我还是坚持使用python吧。