如何在 UNIX shelll 中将字符串转换为整数

新手上路,请多包涵

我有 d1="11"d2="07" 。我想将 d1d2 转换为整数并执行 d1-d2 。我如何在 UNIX 中做到这一点?

d1 - d2 当前返回 "11-07" 作为我的结果。

原文由 qwarentine 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 705
2 个回答

标准溶液:

  expr $d1 - $d2

你也可以这样做:

 echo $(( d1 - d2 ))

但请注意,这会将 07 视为八进制数! (所以 077 相同,但 010 不同于 10

原文由 William Pursell 发布,翻译遵循 CC BY-SA 3.0 许可协议

这些中的任何一个都可以从 shell 命令行工作。 bc 可能是您最直接的解决方案。

使用 bc

 $ echo "$d1 - $d2" | bc

使用 awk

 $ echo $d1 $d2 | awk '{print $1 - $2}'

使用 perl

 $ perl -E "say $d1 - $d2"

使用 Python

 $ python -c "print $d1 - $d2"

全部返回

4

原文由 Levon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题