如何在Notepad++中输入0xFF等十六进制字符编写Bash脚本?
如何在Bash脚本中发送0xFF和0x03(Ctrl+C)这类不可打印字符到串口设备
下面是几种可行的解决办法,不用在编辑器里直接输入这些不可打印字符:
方法一:用printf命令(推荐,兼容性好)
printf支持通过十六进制转义序列直接生成字符,把脚本里的echo "?1"和echo "?2"替换成对应的printf命令即可。
修改后的完整脚本:
# usb is /dev/ttyUSB0 usb=$1 echo "mtest 0x8007FFC0 0x8017ffc0" >> $usb sleep 115 printf '\xFF' >> $usb sleep 1 printf '\x03' >> $usb sleep 1
方法二:用带-e参数的echo命令
Bash的echo加上-e参数后可以解析转义序列,也能实现需求:
echo -e '\xFF' >> $usb echo -e '\x03' >> $usb
注意:不同系统的echo实现可能有差异,printf的跨平台兼容性更可靠。
方法三:直接在编辑器插入不可打印字符(可选)
如果一定要在脚本里直接插入字符,在Notepad++里可以这么操作:
- 点击顶部菜单栏「编辑」→「字符面板」,找到对应十六进制的字符(0xFF显示为ÿ,0x03显示为ETX),点击插入
- 或者按住
Alt键,用数字小键盘输入字符的十进制值(0xFF对应255,0x03对应3),松开Alt键即可插入。不过这种方式插入的字符可能显示乱码,不如转义序列直观好维护。
内容的提问来源于stack exchange,提问作者nguyen hop
相关产品推荐
相关产品推荐

