如何防止直流断开输出

时间:2015-11-05 21:54:16

标签: bash dc

我正在使用“dc”命令将十六进制转换为十进制

public class WeaponBow extends Weapon implements Ranged{

    @Override
    public boolean onRanged(){
        //play animation, check if target is vulnerable, ect.
        //return true if the enemy can be hit false otherwise
    }
}

问题在于它会破坏大数字的输出

dc -e "16i$1p"

如何防止此行为?是否有选项或参数要传递以禁用此功能?

2 个答案:

答案 0 :(得分:0)

bc似乎做同样的事情。此规范中还列出了70个字符的限制:

http://pubs.opengroup.org/onlinepubs/000095399/utilities/bc.html

离开我的头顶,只需后处理:

echo "ibase=16; FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" | bc | perl -pe's/\\\n//'

此处建议使用其他选项:https://unix.stackexchange.com/questions/13676/how-can-you-combine-all-lines-that-end-with-a-backslash-character

答案 1 :(得分:0)

这个问题既古老又冷,但我认为值得注意的是,在GNU dcbc的较新版本中,可以通过环境变量禁用此功能

n=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
n+=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

DC_LINE_LENGTH=0 dc -e "16i${n}p"

BC_LINE_LENGTH=0 bc <<<"ibase=16; $n"