我需要一些关于bash数学表达式脚本的帮助。我需要下面的表达式是负 2 的 63 次方,但我尝试了 "、"''、(()) 的各种组合,甚至保持正值但将其乘以 -1,但我似乎无法正确理解语法。
原文表达:
kw=`expr 2^63 | bc`
给了我9223372036854775808(这是正确的),但我需要得到一个 -9223372036854775808。
我希望能够做一个 kw= expr -2^63 | bc
来获得负面结果,但它并不像我希望的那么简单。因此,我对表达进行了多次不同的排列尝试。
任何帮助将不胜感激。
你来了:
$ kw=$(echo -2^63 | bc)
$ echo $kw
-9223372036854775808
更新
@DigitalTrauma是对的,如果你在bash
,那么在这里使用 bash 字符串会更好(少一个进程,效率更高):
kw=$(bc <<< -2^63)
由于这是 bash,你甚至不需要 echo
; 你可以在这里使用 bash 字符串代替:
$ kw=$(bc <<< -2^63)
$ echo $kw
-9223372036854775808