我无法让我的功能做我想做的事。当我调用我的函数 get_from_A_to_F 时,我给它一个参数 $remainder。我希望我的函数将高于 9 的数字替换为特定字母。如果参数等于 10,则应将其更改为“A”。但是它仍然保留为 10。我在这里做错了什么?
#!/bin/sh
get_from_A_to_F()
{
case $1 in
10) $1="A"
;;
11) $1="B"
;;
12) $1="C"
;;
13) $1="D"
;;
14) $1="E"
;;
15) $1="F"
;;
[0-9]) $1=$1
;;
esac
echo $1
}
read number
string=""
index=`expr index $number "."`
if [ $index -eq 0 ]
then
integer=$number
fraction=0
else
integer=`expr substr $number 1 $(expr $index - 1)`
fraction=`expr "$number - $integer" | bc`
fi
result=$integer
while [ $result -ne 0 ]
do
remainder=`expr $result % 16`
get_from_A_to_F $remainder
result=`expr $result / 16`
string=$remainder$string
done
当前输出(如果读取的数字是 634):
634
test: 43: 10=A: not found
10
test: 43: 7=7: not found
7
test: 43: 2=2: not found
2