【发布时间】:2018-09-19 04:37:08
【问题描述】:
我正在尝试在 shell 脚本中添加两个十六进制数字并将结果存储为十六进制数字。
let "step_size = 10"
let "start_num = 20000000"
let "size = 64"
for (( i = 0; i < 1000; i = $i + $step_size ))
do
for (( j = 0; j < $step_size; j++ ))
do
let "temp = $(( $(( $i * $step_size)) + $(( $j * $size )) ))"
num=`echo "obase=16; $temp" | bc`
echo $num
num2=`obase=16;ibase=16; echo $start_num \\+ $num | bc`
echo $start_num $num $num2
echo "****"
done
done
并非所有结果都是错误的。仅当$num = C0 时出现错误
输出
0
20000000 0 20000000
****
40
20000000 40 20000040
****
80
20000000 80 20000080
****
C0
20000000 C0 20000090 #This is the error!!
****
100
20000000 100 20000100
****
...
...
...
1C0
20000000 1C0 20000190 #Error again!!
我正在使用 zshell。我不确定为什么会这样。非常感谢任何帮助。
谢谢
【问题讨论】:
-
您发布的代码不会使用
sh、bash和zsh生成粘贴的输出。您确定您粘贴了正确的代码和输出吗? -
有一个错字。我更正了代码。谢谢