#!/bin/bash
#使用方法:
# (1) sh find_notuse_variable.sh + 路径,比如 "sh find_notuse_variable.sh ../pubs"
# (2) sh find_notuse_variable.sh + A.pc,A.pc即某一个源文件名
#注意:本脚本只适用于
# (1) 对char类型变量,不适用其他类型变量
# (2) 一个.pc文件中只有一个函数的情况
#脚本结果:
# (1)---memset 表示,进行了memset初始化,程序中未使用该变量。
# (2)---char 表示,进行了char定义,程序中未使用该变量。
if [ $# -eq 0 ]; then
echo "默认现工作目录"
PATHSTR="."
elif [ $# -eq 1 ]; then
PATHSTR=$1
else
echo "参数输入有误,只需要输入一个参数,即路径"
return -1;
fi
echo "输入参数路径:$PATHSTR"
#相对路径转绝对路径
cd $PATHSTR
if [ $? -ne 0 ]; then
echo "路径有误,请重新输入"
return -1;
fi
JDPATH=`pwd`
cd -
echo "绝对路径:$JDPATH"
ls -l $JDPATH/*.pc | awk '{print $9}' | while read LINE
do
#echo "-----------------------------------------------"
#echo $LINE:
BZ=0
cat $LINE | grep "char" | grep "\[" | grep "\]" | awk '{print $2}' | awk -F "[" '{print $1}' | while read STR
do
COUNT=10
#cat Inbu_transCashCombination.pc | grep sHxLsh | awk -F "(" '{print $1}' | awk '{print $1}'
cat $LINE | grep "$STR" | awk -F "(" '{print $1}' | awk '{print $1}' | while read STRB
do
if [ "$STRB" = "memset" ]; then
COUNT=0
elif [ "$STRB" = "char" ]; then
COUNT=1
else
COUNT=10
fi
done
if [ "$COUNT" -eq "0" ]; then
BZ=`expr $BZ + 1`
if [ "$BZ" -eq "1" ]; then
echo "----------------------------------------------"
echo $LINE:
fi
echo "$STR---memset"
elif [ "$COUNT" -eq "1" ]; then
BZ=`expr $BZ + 1`
if [ "$BZ" -eq "1" ]; then
echo "----------------------------------------------"
echo $LINE:
fi
echo "$STR---char"
fi
done
done
#使用方法:
# (1) sh find_notuse_variable.sh + 路径,比如 "sh find_notuse_variable.sh ../pubs"
# (2) sh find_notuse_variable.sh + A.pc,A.pc即某一个源文件名
#注意:本脚本只适用于
# (1) 对char类型变量,不适用其他类型变量
# (2) 一个.pc文件中只有一个函数的情况
#脚本结果:
# (1)---memset 表示,进行了memset初始化,程序中未使用该变量。
# (2)---char 表示,进行了char定义,程序中未使用该变量。
if [ $# -eq 0 ]; then
echo "默认现工作目录"
PATHSTR="."
elif [ $# -eq 1 ]; then
PATHSTR=$1
else
echo "参数输入有误,只需要输入一个参数,即路径"
return -1;
fi
echo "输入参数路径:$PATHSTR"
#相对路径转绝对路径
cd $PATHSTR
if [ $? -ne 0 ]; then
echo "路径有误,请重新输入"
return -1;
fi
JDPATH=`pwd`
cd -
echo "绝对路径:$JDPATH"
ls -l $JDPATH/*.pc | awk '{print $9}' | while read LINE
do
#echo "-----------------------------------------------"
#echo $LINE:
BZ=0
cat $LINE | grep "char" | grep "\[" | grep "\]" | awk '{print $2}' | awk -F "[" '{print $1}' | while read STR
do
COUNT=10
#cat Inbu_transCashCombination.pc | grep sHxLsh | awk -F "(" '{print $1}' | awk '{print $1}'
cat $LINE | grep "$STR" | awk -F "(" '{print $1}' | awk '{print $1}' | while read STRB
do
if [ "$STRB" = "memset" ]; then
COUNT=0
elif [ "$STRB" = "char" ]; then
COUNT=1
else
COUNT=10
fi
done
if [ "$COUNT" -eq "0" ]; then
BZ=`expr $BZ + 1`
if [ "$BZ" -eq "1" ]; then
echo "----------------------------------------------"
echo $LINE:
fi
echo "$STR---memset"
elif [ "$COUNT" -eq "1" ]; then
BZ=`expr $BZ + 1`
if [ "$BZ" -eq "1" ]; then
echo "----------------------------------------------"
echo $LINE:
fi
echo "$STR---char"
fi
done
done