【发布时间】:2015-08-11 11:13:32
【问题描述】:
例如,我希望能够读取 10 个键盘输入字符,并将它们存储到一个文件中。我试过linux命令:
read -n 10
但是如果你按 ctrl-c (0x03) 它会中止。我需要能够读取接下来的 10 个字符,无论它们是什么,包括所有控制字符,所以值 0x00 到 0xFF。这可能吗?
【问题讨论】:
-
如果输入一个 0x03 字符,您的命令将成功读取。但是,Ctrl-C 默认会发送一个 sigint 并且不会输入 0x03 字符。这有什么用例?
-
我想为终端仿真器应用程序发明一种将文件传输到远程主机的专有方法。基本上,终端仿真器会告诉 linux 端进入一种特殊模式,在该模式下它模仿用户输入文件的内容,远程 linux 站点将存储这些字节以在远程端创建文件。这有点像终端打印如何使用
[4i, [5i,但方向相反。 -
您应该能够转储任意二进制数据并使用例如读取它。
cat > file。发送 0x03 字节与按 Ctrl-C 不同。 -
试试这个:
saved=$(stty -g);stty raw pass8;dd of=/your/output/file bs=1 count=10 2>/dev/null;stty $saved -
@MarkPlotnick 似乎可行!谢谢。