I have posted a method to find class symbol from a directory in the previous article. Today i got a question in finding function sysbol. So the fellow script code was created to solve the question.
#!/bin/bash dotMaxCnt=200 function processLine() { if (( $dotCnt < $dotMaxCnt ));then echo -n . ((dotCnt++)) else cleanLine fi } function cleanLine() { for((i=0; i<$dotMaxCnt;i++));do echo -ne "\b\b\b" done for((i=0; i<$dotMaxCnt;i++));do echo -ne " " done for((i=0; i<$dotMaxCnt;i++));do echo -ne "\b\b\b" done dotCnt=0 } function doDir() { findLen=${#2} for file in "$1"/* do if [ -f "$file" ] then if [[ "$file" =~ .+\.a$ || "$file" =~ .+\.(so)$ ]] then stringsOutput=( $(strings -n $findLen "$file" | grep $2 ) ) firstFind=0 dotCnt=0 for stringsLine in "${stringsOutput[@]}" do grepOutput=$(echo $stringsLine | grep $2) if [[ ${grepOutput} != "" ]] then if [[ $firstFind == 0 ]] then cleanLine echo $file $oFile firstFind=1 fi cleanLine echo " ---->" "$grepOutput" else processLine fi done fi elif [ -d "$file" ] then #if "$file" != "." and "$file" != ".." # then doDir $file $2 # fi fi done } doDir $1 $2
标签:function,symbol,file,directory,fi,find From: https://www.cnblogs.com/tju1895/p/18073039