shell脚本封装代码检查工具

博客介绍了对代码工程tools目录下的代码检查工具start_scan.sh进行改写的过程。原工具使用繁琐,改写后可将扫描结果拷贝到当前目录并与svn diff信息比较,方便查看。过程包括初稿发现问题、解决交互不友好等问题,还为复用添加参数及判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        代码工程的tools目录下有一个代码检查工具,TscanCode_linux目录start_scan.sh。可以用于扫描部分代码错误,例如未初始化或者空指针之类的问题。但是每次使用的时候,太过繁琐与复杂,自己进行改写,将扫描结果直接拷贝到当前目录并且与svn diff信息作比较,使用者只需要傻瓜式查看。

        这个过程分为以下几步:

        一、初稿发现问题。其中主要进行了主题功能制作,将扫描结果与本地文件进行扫描,找出需要自己检查的地方。

#!/bin/bash

nowpath="/home/wahaha/FirServer/branches/branche_sealgull/"
path="/home/wahaha/FirServer/tools/TscanCode_linux/"
cd $path
strDate=$path"result.txt."
strDate+=`date "+%Y%m%d"`

./strat_scan.sh

cat $strDate* > tsCanCode_result.txt
mv tsCanCode_result.txt $nowpath
cd $nowpath

rm -f TscanCodeResult.txt
touch TscanCodeResult.txt

svn st | grep ^M > result.txt
cut -d"/" -f 2 result.txt > aaa.txt

while read line
do
    echo "-------------------------" >> TscanCodeResult.txt
    echo $line >> TscanCodeResult.txt
    grep -i $line tsCanCode_result.txt
    echo "-------------------------" >> TscanCodeResult.txt
done < aaa.txt

       二、因为获取结果的时候,直接使用cat $strDate*获取当天所有文件,所以如果一天使用多次该脚本,交互很不友好。其次,每次使用完成留下result.txt和aaa.txt也是很不好

#!/bin/bash

#原工作目录
nowpath="/home/wahaha/FirServer/branches/branche_sealgull/"

#删除同天文件
path="/home/wahaha/FirServer/tools/TscanCode_linux/"
cd $path
strDate=$path"result.txt."
strDate+=`date "+%Y%m%d"`
rm -f $strDate*

#执行脚本
./strat_scan.sh

#拷贝并切换工作目录
cat $strDate* > tsCanCode_result.txt
mv tsCanCode_result.txt $nowpath
cd $nowpath

rm -f TscanCodeResult.txt
touch TscanCodeResult.txt

svn st | grep ^M > result.txt
cut -d"/" -f 2 result.txt > aaa.txt

#展示信息
while read line
do
    echo "-------------------------" >> TscanCodeResult.txt
    echo $line >> TscanCodeResult.txt
    grep -i $line tsCanCode_result.txt
    echo "-------------------------" >> TscanCodeResult.txt
done < aaa.txt

rm -f aaa.txt result.txt

        三、由于个人家目录下有多个项目文件,为了复用,添加参数以及判断。最终版本代码为

​
#!/bin/bash

if [[ $# != 1 ]]
then
    echo "argument error, eg:gull,chess"
    exit 0
fi

#原工作目录
nowpath="/home/wahaha/FirServer/branches/branche_sealgull/"

#删除同天文件
path="/home/wahaha/FirServer/tools/TscanCode_linux/"
cd $path
strDate=$path"result.txt."
strDate+=`date "+%Y%m%d"`
rm -f $strDate*

#执行脚本
./strat_scan.sh

#拷贝并切换工作目录
cat $strDate* > tsCanCode_result.txt
mv tsCanCode_result.txt $nowpath
cd $nowpath

rm -f TscanCodeResult.txt
touch TscanCodeResult.txt

svn st | grep ^M > result.txt
cut -d"/" -f 2 result.txt > aaa.txt

#展示信息
while read line
do
    echo "-------------------------" >> TscanCodeResult.txt
    echo $line >> TscanCodeResult.txt
    grep -i $line tsCanCode_result.txt
    echo "-------------------------" >> TscanCodeResult.txt
done < aaa.txt

rm -f aaa.txt result.txt

​vim TscanCodeResult.txt

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值