gpt4 book ai didi

bash - 如何使用Bash算术运算处理错误?

转载 作者:行者123 更新时间:2023-12-03 07:41:30 26 4
gpt4 key购买 nike

有什么方法可以处理Bash算术运算中的错误?例如,尝试不支持的浮点运算会导致错误:

$ echo $(( 3.5 + 1))
-bash: 3.5 + 1: syntax error: invalid arithmetic operator (error token is ".5 + 1")

我尝试通过逻辑OR或仅使输出静音来解决错误的尝试没有任何区别:

$ echo $(( 3.5 + 1)) ||true
-bash: 3.5 + 1: syntax error: invalid arithmetic operator (error token is ".5 + 1")

$ echo $(( 3.5 + 1)) 2>&-
-bash: 3.5 + 1: syntax error: invalid arithmetic operator (error token is ".5 + 1")

我确实看到两种回退机制实际上如何应用于 echo而不是算术运算本身,并且后者是引发错误的原因。

有没有一种方法可以写一个或另一个,使其适用于算术运算?

最佳答案

如果只是要丢弃错误消息,那么尝试这样做的自然方法是

echo $(( 3.5 + 1)) 2>/dev/null

不幸的是,这不起作用。我猜是因为错误消息来自Bash本身。但是,这确实有效(至少在Bash 4.2上):
( echo $(( 3.5 + 1)) ) 2>/dev/null
(...)创建一个子 shell ,在某些平台上(特别是Cygwin和WSL),该 shell 非常昂贵。这个稍微凌乱的代码也可以使用,并且不会创建子shell:
{ echo $(( 3.5 + 1)) ; } 2>/dev/null

关于bash - 如何使用Bash算术运算处理错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55164260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com