微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux-包含&符号的bash脚本的/usr/bin/time

假设我们有一个包含命令的bash脚本,其中一些命令可能带有&符号.
我想使用/usr/bin/time来衡量这种脚本的执行时间,但是由于&符,实际工作是在后台完成的,而脚本将命令返回给Shell,导致测量结果等于零.

有没有办法抑制&符号的行为(即不让命令在后台运行)?

之所以尝试执行此操作,是因为我想进行大规模基准测试(大量数据集,并且使用多个工具(某些工具表现出这种行为)).

一个具体的,非常简单的示例如下.

创建一个脚本test.sh,其中包含:

#! /bin/sh
sleep 2 &

并尝试使用以下命令运行它:

/usr/bin/time ./test.sh

结果是:

0.00user 0.00system 0:00.00elapsed 100%cpu (0avgtext+0avgdata 668maxresident)k
0inputs+0outputs (0major+219minor)pagefaults 0swaps

预期的结果将是大约2秒(cpu或经过的时间).

请注意,上面的脚本只是一个玩具示例.另外,假设它不能被修改(将其视为黑匣子).

解决方法:

是.在脚本末尾添加一个等待语句.这将导致该脚本为“ wait”,以完成后台任务.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐