Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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
动态组合两个bash脚本以显示CPU和内存_Bash_Shell - Fatal编程技术网

动态组合两个bash脚本以显示CPU和内存

动态组合两个bash脚本以显示CPU和内存,bash,shell,Bash,Shell,我有一个脚本,可以连续打印不同的日志和日期 ./script1 Date Log Date Log Date Log ... 我还有另一个,prustat,它打印%CPU和%mem ./prustat %CPU %mem 1.2 3 我希望将两者结合起来,以便: Date Log %CPU %mem 1.2 3 Date Log %CPU %mem 1.2 3 以获得每个日志的CPU消耗和内存 谢谢。您可以将/prustat放入script1(最后一行)中,也可以这样称呼它们: ./

我有一个脚本,可以连续打印不同的日志和日期

./script1

Date Log
Date Log
Date Log ...
我还有另一个,prustat,它打印%CPU和%mem

./prustat

%CPU %mem
1.2 3
我希望将两者结合起来,以便:

Date Log
%CPU %mem
1.2 3
Date Log
%CPU %mem
1.2 3

以获得每个日志的CPU消耗和内存


谢谢。

您可以将
/prustat
放入
script1
(最后一行)中,也可以这样称呼它们:

./script1; ./prustat

如果它一直在运行,你不知道为什么你想让它们一起运行

你可以试试:

./script1.sh& ./script2.sh
这将调用script1并将其作为后台作业,然后调用script2.sh

现在您将返回命令提示符

你能行

fg%1要返回script1.sh

不确定你为什么想做这样的事

执行上述操作意味着,如果再次重新启动,则上一个作业仍在后台运行,并且您将得到一个正在运行的辅助作业-

简而言之,您应该将两个脚本合并到一个脚本中,并在需要时在script1中调用script2,并让script1连续运行

这将是痛苦的

因此,另一种选择是:

timeout 1 ./script1.sh; ./script2.sh

这将执行script1并在1秒后超时,然后运行script2,这看起来像是您想要的

./script1.sh | 
while IFS= read -r line; do
    echo "$line"
    ./script2.sh
done

但是,关于脚本1和脚本2的内容,您一定没有告诉我们一些东西,这应该结合两个脚本的输出

#!/bin/bash
trap 'rm /tmp/z[12]' 0
./script1 > /tmp/z1 &
./prustat > /tmp/z2 &
tail -qfc +1 /tmp/z[12]
但是没有同步,因此根据每个脚本的输出频率,顺序可能不是您所期望的


编辑:不清楚是两个脚本都提供连续输出,还是仅第一个脚本。我的回答假设两者都有。

是的,但是/script1连续打印。您可以将/prustat放在script1的循环中吗?