【发布时间】:2019-05-10 17:38:22
【问题描述】:
我在互联网上查找了我的问题,但找不到答案。抱歉,如果之前回答过。这是为 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
但我希望它返回一个十六进制结果而不是十进制,如果计算是在十六进制值上完成的。
欢迎提出任何想法!
【问题讨论】:
-
请在您的问题中添加示例输入和该示例输入所需的输出。
-
编辑澄清!
-
对于这个特殊问题,Bash 看起来是个糟糕的选择。 Perl 或 Python 应该是微不足道的; awk 也不应该太难。
-
如果您输入了
0xa - 10或10 - 10怎么办?第一个应该是十六进制还是十进制?