今天用了一天的生命力写出了第一个脚本,为了忘一个自动测试脚本里在每个case后添加三行gcov命令来生成.gcov信息。
注意:
一、if中用正则的话要[[ exp =~ exp
&& exp]] (等号和方括号,且必须有空格)
二、若a=echo 123asd456
则$a=123asd456
'$a'=$a
"$a"=123asd456
"{$a}"=echo 123asd456
1
#!/bin/bash
2 flag=0
3 count=0
4
5 while read
line
6 do
7 #
echo $line
#这里可根据实际用途变化
8
if [[ "$line" =~
">>>>>>>>running
test" && "$flag"
== 0 ]]
9
then flag=1
10 #
count=${line//[A-Za-z\>]/}
11
count=`expr $count + 1`
12
echo $line >>
1.sh
13
elif [ "$flag" = 1 ]
14
then flag=0
15
echo $line >>
1.sh
16
echo 'gcov ../source/grep.c -o
../source/grep.gcno ../source/grep.gc
da >/dev/null
2>&1'>>
1.sh
#生成gcov文件
17
echo 'mv grep.c.gcov ../traces/'$count.gcov
>> 1.sh
#重命名gcov
18
echo 'rm ../source/grep.gcda'
>> 1.sh
#删除gcda、gcov
19
echo
>> 1.sh
#打印空行
20
else
21
echo $line >>
1.sh
22
fi
23 done
< v0.sh