You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下Bash的echo命令能否发送无符号整数而非仅字符?

在Bash中发送原始字节值(而非ASCII字符)到设备驱动

没问题,我完全懂你想要的效果——直接把十六进制0x01对应的字节(十进制1)写入设备,而不是字符'1'的ASCII码(十进制49)。下面给你几个靠谱的实现方法:

  • 方法1:用echo的转义序列
    Bash的echo本身可以通过-e选项启用转义字符解析,再搭配-n避免自动添加换行符(不然会多写一个换行字节进去)。要发送十六进制0x01,直接用:

    echo -ne '\x01' > /dev/LED
    

    这里的\x前缀表示后面跟的是十六进制字节值,\x01就对应你要的原始字节1。

  • 方法2:用printf(更推荐)
    不同系统或Bash版本的echo行为可能略有差异,而printf的跨平台一致性更好,处理二进制数据也更可靠。实现同样的需求只需:

    printf '\x01' > /dev/LED
    

    如果你要发送其他十六进制值,比如0xAB,直接把\x01换成\xAB就行,非常直观。

  • 方法3:八进制转义写法
    除了十六进制,也可以用八进制转义来表示字节,0x01对应的八进制是001,所以命令可以写成:

    echo -ne '\001' > /dev/LED
    

这些方法都能直接把原始的无符号整数字节写入你的设备驱动.write函数,不用再在驱动里做ASCII字符的转换啦~

内容的提问来源于stack exchange,提问作者Leos313

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:28:03