weixin_49314420 2022-10-31 06:30 采纳率: 66.7%
浏览 28
已结题

help!linux的shell脚本解决一个小问题,已经被困扰太多天了!!

初学者,第一次写shell脚本
要实现的功能是,在一个终端发送信息,开另一个终端去接收内容,我想写一个脚本来完成测试,不用每次都手动操作

但问题是接收窗口会一直接收发送窗口的信息,就像这样:

img

img

我手动操作的时候ctrl+z,就把接收窗口挂起中止了,但是脚本里用什么命令让那个接收窗口挂起呀??网上找了好几天都没找到

不可以直接杀掉这个接收的进程,那样接收和发送的字符数不一致,我也不知道为什么😭

# 新开窗口接收S0的信息,等‘0000’发送给S0之后一段时间,再把cat命令挂起
# 后面还要测试S1,S2等等,脚本实现自动测试 

gnome-terminal -- bash -c "cat /dev/ttyS0"   # 接收窗口执行cat命令
echo "0000" > /dev/ttyS0   # 发送窗口发送内容后,ctrl+z手动挂起cat命令
cat /proc/tty/driver/serial  #查看收发情况

  • 写回答

3条回答 默认 最新

  • 伍六七0804 2022-10-31 06:38
    关注

    命令后面加 &可以让其在后台运行 那你就不会卡住了

    gnome-terminal -- bash -c "cat /dev/ttyS0" &
    cat /proc/tty/driver/serial &
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    weixin_49314420 2022-10-31 06:40

    接收操作转向后台之后,我要怎么操作把它挂起呢,我一直是手动ctrl+z在操作,求解答

    回复
    伍六七0804 回复 weixin_49314420 2022-10-31 07:12

    你这描述越看越懵 测试接收和发送为什么还有挂起呢?你不是开了两个终端吗?

    1
    回复
    weixin_49314420 回复 伍六七0804 2022-10-31 07:59

    不好意思,可能是我没说清楚
    用echo发送信息之后,接收窗口会一直重复接收信息,就像我在题目里补充的那样
    为了中止它的接收,我必须把cat命令挂起,这样,我测试收发的字节数才是正确的
    而这个挂起操作,我一直是手动ctrl+z,我就是想问怎么用命令行代替

    回复
    展开全部8条评论
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 11月8日
  • 已采纳回答 11月1日
  • 修改了问题 10月31日
  • 修改了问题 10月31日
  • 展开全部
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部