linux shell 基本演示學習
阿新 • • 發佈:2019-01-05
#!/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:~$