您的位置:首页 > 运维架构 > Shell

Shell脚本写的简单字符串hash函数

2011-09-09 14:33 399 查看
#!/bin/bash

Letter2Int(){
if [ "$#" -ne "0" ]; then
echo "Letter2Int Wrong Paramenters!" >&2
return 1
fi
read letter
length=`echo $letter|awk '{printf("%d", length($0))}'`
if [ "$length" -ne "1" ]; then
echo "Letter2Int: more than one letter: $letter!" >&2
return 1
fi
printf "%d" "'$letter"
return 0
}

Hash(){
if [ "$#" -ne "1" ]; then
echo "Hash Wrong Paramenters!" >&2
return 1
fi
read string
length=`echo $string|awk '{printf("%d", length($0))}'`
if [ "$length" -eq "0" ]; then
echo "Hash: At least one letter should be input!" >&2
return 1
fi
iCount=1
letterSum=0
while [ "$iCount" -le "$length" ]
do
letterCur=`expr substr $string $iCount 1`
letterNumCur=`printf "%d" "'$letterCur"`
echo "$letterCur $letterNumCur"
letterSum=`expr $letterSum + $letterNumCur`
iCount=`expr $iCount + 1`
done
echo $letterSum
letterSum=`expr $letterSum % $1`
echo $letterSum
return 0
}

read letter
echo $letter|Hash 10
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: