小编raz*_*zak的帖子

如何将输入文本(在屏幕中)发送到串行端口,一次一行(一次不是字符)?

我正在使用 screen 通过串口与 arduino 通信,我像这样启动屏幕:

screen /dev/ttyACM0 115200
Run Code Online (Sandbox Code Playgroud)

然后我尝试发送一个命令,但我在键盘上按下的每个键都会被立即发送,如何让它等到我按下Enter键后再将输入发送到 arduino?


这是我的串行设备/dev/ttyACM0设置:

$ sudo ssty -F /dev/ttyACM0 -a
speed 115200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^H; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 100; time …
Run Code Online (Sandbox Code Playgroud)

gnu-screen terminal

7
推荐指数
1
解决办法
3299
查看次数

如何使用用户输入作为 while 循环条件

我可以在 bash 中做到这一点:

while read -n1 -r -p "choose [y]es|[n]o"
do
    if [[ $REPLY == q ]];
    then
        break;
    else
        #whatever
    fi
done
Run Code Online (Sandbox Code Playgroud)

这有效但似乎有点多余,我可以做这样的事情吗?

while [[ `read -n1 -r -p "choose [y]es|[n]o"` != q ]]
do
    #whatever
done
Run Code Online (Sandbox Code Playgroud)

shell bash control-flow test read

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

bash ×1

control-flow ×1

gnu-screen ×1

read ×1

shell ×1

terminal ×1

test ×1