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

GNU Screen向指定范围窗口发命令失败,求多范围实现方案

GNU Screen 多窗口批量发送命令问题解决

一、修复单范围命令不生效的问题

你原命令at '2-10#' stuff "command^m"无效的核心原因是窗口范围语法错误,正确写法需去掉范围后的#,同时确保换行符输入正确:

  • 交互式会话内操作:用^V^M输入实际回车符(先按Ctrl+V,再按Ctrl+M)
    at 2-10 stuff "command^V^M"
    
  • 脚本/外部调用场景:用\n代替换行符(需用双引号包裹)
    screen -X at 2-10 stuff "command\n"
    
    或结合printf生成带换行的命令:
    printf 'command\n' | screen -X at 2-10 stuff -
    

二、实现多组范围窗口发送命令

Screen的at命令支持用逗号分隔多个窗口范围或单个窗口编号,直接指定多组范围即可:

示例:向2-4、8-9号窗口发送命令

  1. 交互式会话内输入:
    at 2-4,8-9 stuff "command^V^M"
    
  2. 脚本/外部调用场景:
    screen -X at 2-4,8-9 stuff "command\n"
    
    或结合printf:
    printf 'your_command_here\n' | screen -X at 2-4,8-9 stuff -
    

补充说明

  • 可通过screen -list或会话内按Ctrl+A "查看所有窗口的编号和名称。
  • 若要向除当前窗口外的所有窗口发命令,用at all stuff "command\n";排除特定窗口(如1号)则用at all but 1 stuff "command\n"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 13:17:33