0

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

./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消耗和内存。

谢谢。

4

4 回答 4

1

有点像你想要的

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

但是关于脚本 1 和 2 的内容,你肯定没有告诉我们一些事情

于 2013-05-27T13:28:15.740 回答
0

你可以把它们放在./prustat里面script1(最后一行),也可以这样称呼它们:

./script1; ./prustat
于 2013-05-27T08:22:36.993 回答
0

好吧,如果它连续运行,不确定您为什么希望它们同时运行?

你可以试试:

./script1.sh& ./script2.sh

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

现在您将返回您的命令提示符

你可以做

fg%1 取回 script1.sh

不知道为什么你会想做这样的事情虽然..

执行上述操作意味着如果您再次重新启动它,前一个作业仍在后台运行,您将获得第二个作业运行 -

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

这会很痛苦。。

所以另一种选择是:

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

这将执行 script1 并在 1 秒后超时,然后运行 ​​script2

于 2013-05-27T11:47:50.183 回答
0

这应该结合两个脚本输出。

#!/bin/bash
trap 'rm /tmp/z[12]' 0
./script1 > /tmp/z1 &
./prustat > /tmp/z2 &
tail -qfc +1 /tmp/z[12]

但是没有同步,因此取决于每个脚本输出频率,顺序可能不是您所期望的。

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

于 2013-05-27T14:31:31.030 回答