Linux 工具 dc 给出 "stack underflow" 错误
Linux tool dc gives "stack underflow" error
我正在尝试通过 shell 计算浮点数。当我执行以下行时,dc 工具失败。
dc -e "4000 0.531 / p"
首先,我以为问题与浮动精度有关。然后,我尝试用整数更改分频器。不幸的是,结果是一样的。
dc -e "4000 1000 / p"
上面的两次执行都给出了相同的错误:
dc: stack underflow
主机 CPU 是放置在 Zynq Ultrascale+ SoC 中的 ARM-Cortex A53。会是什么原因呢?我该如何解决?
附加信息
dc --version
的输出也给出相同的输出。
dc: stack underflow
幸运的是,dc --help
可以正常工作并显示如下版本。
BusyBox v1.24.1 (2021-12-08 08:10:27 UTC) multi-call binary.
type dc
的输出如下
dc is hashed (/usr/bin/dc)
What would be the reason?
Busybox dc
不接受任何 -e
参数。因为 -e
被解析为 -
后跟命令 e
,所以 -
尝试弹出两个值并且堆栈为空。
How can I solve it?
刚刚:
dc "4000 0.531 / p"
无论如何,正确的方法是将数据通过管道传输到标准输入。
echo "4000 0.531 / p" | dc
我正在尝试通过 shell 计算浮点数。当我执行以下行时,dc 工具失败。
dc -e "4000 0.531 / p"
首先,我以为问题与浮动精度有关。然后,我尝试用整数更改分频器。不幸的是,结果是一样的。
dc -e "4000 1000 / p"
上面的两次执行都给出了相同的错误:
dc: stack underflow
主机 CPU 是放置在 Zynq Ultrascale+ SoC 中的 ARM-Cortex A53。会是什么原因呢?我该如何解决?
附加信息
dc --version
的输出也给出相同的输出。
dc: stack underflow
幸运的是,dc --help
可以正常工作并显示如下版本。
BusyBox v1.24.1 (2021-12-08 08:10:27 UTC) multi-call binary.
type dc
的输出如下
dc is hashed (/usr/bin/dc)
What would be the reason?
Busybox dc
不接受任何 -e
参数。因为 -e
被解析为 -
后跟命令 e
,所以 -
尝试弹出两个值并且堆栈为空。
How can I solve it?
刚刚:
dc "4000 0.531 / p"
无论如何,正确的方法是将数据通过管道传输到标准输入。
echo "4000 0.531 / p" | dc