1. 程式人生 > >linux shell 基本演示學習

linux shell 基本演示學習

#!/bin/sh
echo ---------------start---------------------
help()
{
arg=$1
echo "Entry help($arg) !!!!!!!!!!!!"
if [ "$arg" = "h" ];then
cat <<HELP
-h> This is a test of shell.
	usage:~$ ./shell2.sh "101110101 01"
HELP
#exit 1; # func arg
return 0

elif [ "$arg" = "f" ];then
	echo "-f> formart error,pls make sure it\`s binary!"
else
	echo ""
fi

}

preproc()
{
	tmp="$1"
	tmp="`echo -n "$tmp" | sed 's/ //g'`"
	#len= wc -c $tmp
#	return "$tmp" ## can`t return string ,only num for state
	mid="$tmp"
#	echo "Func_preproc: mid=$mid"
	
}
getLen()
{
	tmp=$1
	len=  wc -c $tmp
	return $len
}

exp2()
{

	m_e="$1"
	m_e=`expr "$len" "-" "$m_e"`
#	echo "hahalog: entry exp2();m_e=$m_e"	
	e_result=1
	while [ "$m_e" != 0 ];do
		e_result=`expr "$e_result" "*" 2`
		m_e=`expr $m_e "-" 1`	
	done
	
	
	
	
}
echo -------------prog begin-----------------------
a=cccc
if [ "$a" = "cccc" ];then ###here, var must be in "" , if not ,error
	echo "test ok: ="
else
	echo "test ok: !="

fi

case $1 in
-h)help "h";;
-f)help "f";;
esac

bin=$1
echo "bin=$bin"
#mid=""
preproc "$bin"
echo "mid=$mid"
len="`echo "$mid" | wc -c `"
len=`expr $len "-" 1`
echo len="$len"
index=$len
dec=0
while [ "$index" != 0 ];do
#	echo "hahalog: entry while line76 . index=$index"
	bi=`echo -n "$mid" | cut -b "$index"`
	echo "bi=$bi"
	if [ "$bi" = "1" ]; then
#		echo "hahalog: entry if line79"
		e_result= exp2 "$index"
#	echo "hahalog: entry if line83, dec=$dec;e_result=$e_result"
		if [ -n "$e_result" ];then
			dec=`expr "$dec" "+" "$e_result"`
		fi
	fi


	index=`expr $index "-" 1`
done ##while
echo "*********dec=${dec}"
echo ------------------------------------
echo ------------------------------------
echo ------------------------------------
##示例結果:(不知道怎麼把echo這個回顯去掉:)
@-desktop:~$ ./shell2.sh "101110101 01"
---------------start---------------------
-------------prog begin-----------------------
test ok: =
bin=101110101 01
mid=10111010101
len=11
bi=1
bi=0
bi=1
bi=0
bi=1
bi=0
bi=1
bi=1
bi=1
bi=0
bi=1
*********dec=1493
------------------------------------
------------------------------------
------------------------------------
@-desktop:~$