ltp-ddt can_loopback

 source 'functions.sh';
interface='can0';
bitrate=;
do_cmd "do_can_loopback.sh -i $interface -b $bitrate";
init_txf=`get_can_stats.sh -s 'TXF'`;
init_rxf=`get_can_stats.sh -s 'RXF'`;
do_cmd "candump -d $interface";
do_cmd "cansequence -p $interface &"; suspend -i -p "mem";
prefinal_txf=`get_can_stats.sh -s 'TXF'`;
prefinal_rxf=`get_can_stats.sh -s 'RXF'`;
do_cmd "sleep 20";
final_txf=`get_can_stats.sh -s 'TXF'`;
final_rxf=`get_can_stats.sh -s 'RXF'`;
do_cmd "killall candump";
do_cmd "killall cansequence";
do_cmd "ip link set $interface down";
echo "TX init=$init_txf, prefinal=$prefinal_txf, final=$final_txf";
echo "RX init=$init_rxf, prefinal=$prefinal_rxf, final=$final_rxf";
if [ "$final_rxf" -gt "$prefinal_rxf" ] && [ "$prefinal_rxf" -gt "$init_rxf" ] && [ "$final_txf" -gt "$prefinal_txf" ] && [ "$prefinal_txf" -gt "$init_txf" ];
then exit ;
else exit ;

注意到第8行 do_cmd末尾有&

&作业控制,将命令变成背景下工作

注:do_cmd和suspend都是ltp-ddt的common script用来实现通用功能。

do_cmd通过eval执行命令

suspend通过sleep `random_ne0 $max_atime`

candump canconfig cansequence都是canutils are available at pengutronix website https://git.pengutronix.de/cgit/tools/canutils/

一开始没想通为什么final_>prefinal_>init_

将do_cmd和suspend中的实质提取出来,做了个测试程序。

sh01.sh 循环打印十次Hello World!中间延时1秒

 #!/bin/bash
i=
while [ $i -lt ]
do
echo -e "Hello World!\a \n"
sleep
((i+=))
done

1.

 #!/bin/sh
eval "./sh01.sh";
#sleep
echo "idyll"

顺序打印十次Hello World!最后输出idyll 注意eval最后没有&,所以顺序执行。

2.

 #!/bin/sh
eval "./sh01.sh &";
#sleep
echo "idyll"

与1比多了个&,上下两条语句同时执行,所以先打印idyll,后输出十次Hello World!

3.

 !/bin/sh
eval "./sh01.sh";
sleep
echo "idyll"

没有&,输出十次Hello World!等待5秒,在输出idyll

4.

 #!/bin/sh
eval "./sh01.sh &";
sleep
echo "idyll"

输出五次Hello World!输出idyll,再输出五次Hello World!

总结下来&是实现命令的并行执行,&前面的语句在后台执行,继续后面的语句执行。

回到can_loopback

do_cmd "cansequence -p $interface &"应该是不停往can口发数据包,在后台运行,suspend -i 10 -p "mem"; suspend十次random time后去读收发stauts
sleep 20后再去读收发stauts,当然是越来越大,为啥要用suspend 里面好像设计了power manager的部分等板子回来后再细究。

eval & sleep的更多相关文章

  1. JSON.parse 与 eval() 对于解析json的问题

    1.eval()与JSOn.parse的不同 eval() var c = 1; //全局变量 var jsonstr1 = '{"name":"a",&quo ...

  2. JSON.parse与eval的区别

    JSON.parse与eval和能将一个字符串解析成一个JSON对象,但还是有挺大区别. 测试代码 var A = "{ a: 1 , b : 'hello' }"; var B ...

  3. JS eval()函数的一些见解

    一.eval是基本使用规则 1 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 2 eval(string) 3 string必需.要计算的字符串,其中含有要计算的 ...

  4. Javascript动态执行JS(new Function与eval比较)

    new Function与eval可以动态执行JS,只要把拼接好的JS方法,然后以字符串的形式传入到这两个函数,可以执行,其中new Function用在模板引擎比较多. 用 Function 类直接 ...

  5. Python:eval的妙用和滥用

    时间 2014-07-08 13:05:24 CSDN博客 原文  http://blog.csdn.net/zhanh1218/article/details/37562167 主题 Python ...

  6. JSON中eval与parse的区别

    json的的解析方法 (非原创) json的解析方法共有两种:eval_r() 和 JSON.parse(),使用方法如下: var jsonData = '{"data1":&q ...

  7. eval解析JSON中的注意点

       在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery ...

  8. jQuery Ajax请求(关于火狐下SyntaxError: missing ] after element list ajax返回json,var json = eval("("+data+")"); 报错)

    $.ajax({    contentType: "application/x-www-form-urlencoded;charset=UTF-8" ,    type: &quo ...

  9. 被嫌弃的eval和with

    × 目录 [1]eval [2]with 前面的话 eval和with经常被嫌弃,好像它们的存在就是错误.在CSS中,表格被嫌弃,在网页中只是用表格来展示数据,而不是做布局,都可能被斥为不规范,矫枉过 ...

  10. Global eval. What are the options?

    David Flanagan最近写了一个关于全局eval的简单表达式,可以用一行式子表示: var geval = this.execScript || eval; 尽管看起来很简短,但是跨浏览器的兼 ...

随机推荐

  1. mysql相关SQL

    1.mysql分组获取最新数据 sql> select max(column_name) from table group by column_name having count(*) orde ...

  2. Ajax 传包含集合的JSON

    通过ajax给后台传json对象,当json中含对象集合时,如 $.ajax({ url : , type : "POST", dataType : "json" ...

  3. dialog问题记录

    这个怎么回事,怎么会负利润 http://mmbiz.qpic.cn/mmbiz_jpg/sd9PceC1NdAEVpR5pKerugkpEPEUIsBVoaz5ibTiaHtxoickmF2bXqF ...

  4. 10 Free Image Hosting Sites for Your Photos

    https://www.lifewire.com/free-image-hosting-sites-3486329 Wondering if there are there any good site ...

  5. Ubuntu16.04源的问题

    今天执行下列语句 sudo apt-get update报错 安装redis时 sudo apt-get install redis-server报错 报错内容大致如下: 在网上查了一下是源的问题,我 ...

  6. Dart- move html element

    今天给出一个例程,像是个小游戏!哈哈 一 html //anagram.html <!DOCTYPE HTML> <html> <head> <title&g ...

  7. UVAL 4728 Squares(旋转卡壳)

    Squares [题目链接]Squares [题目类型]旋转卡壳 &题解: 听着算法名字,感觉挺难,仔细一看之后,发现其实很简单,就是依靠所构成三角行面积来快速的找对踵点,就可以省去很多的复杂 ...

  8. 003-SqlHelper.cs/Web.config

    <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访 ...

  9. jQuery-手风琴伸缩效果

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. C# asp.net webapi下支持文件下载输出接口

    /// <summary>     /// 下载文件     /// </summary>     public class DownloadController : ApiC ...