我在互联网上查找了我的问题,但找不到答案 . 如果以前回答过,请道歉 . 这是为了bash .
所以我的脚本将读取一个input.dat文件,并查看行并根据它进行算术运算 . 例:
#input.dat file:
205 - 12
0xFED - 0xABCD
使用代码 echo $((p))
,其中p是循环计数(帮我计算和打印每一行)但0xFED - 0xABCD返回-39904,但我希望它返回其十六进制对应 .
./test.sh input.dat
while read p; do
echo $((p))
done <$1
收益:
193
-39905
但我希望它返回十六进制结果而不是十进制,如果计算是在十六进制值上完成的 .
欢迎任何想法!
1 回答
使用
printf
指定应如何打印输出 . 对于十六进制表示,您可以使用%x
printf修饰符,对于十进制表示,您可以使用%d
printf修饰符 .不要复制下面的代码,它会尝试删除驱动器上的所有文件 . 代码中的注释如下: