模拟在屏幕上按下 Enter 键

模拟在屏幕上按下 Enter 键

我已经成功运行命令

screen -S Run -X stuff 'stop'`echo -ne '\015'` 

在终端中,让屏幕运行接收停止命令,然后接收模拟输入。这会导致该屏幕上运行的程序终止。但是,当我尝试编写如下所示的脚本时

#!/bin/sh
  screen -S Run -X stuff 'stop'`echo -ne '\015'`

屏幕重现文字

-X: stuff: invalid option stop-ne

我想知道我的脚本有什么问题以及如何纠正它,以便屏幕运行接收停止命令,然后接收输入按

答案1

echo版本sh不支持选项。

将您的脚本更改为使用 Bash 运行,如下所示:

#!/bin/bash
screen -S Run -X stuff 'stop'"$(echo -ne '\015')"

或者,只需在字符串中放置一个文字换行符,而不必依赖于echo

#!/bin/sh
screen -S Run -X stuff 'stop
'

答案2

尝试:

screen -S Run -X stuff 'stop^M'

答案3

除了@kiri 提供的内容之外,您还可以使用新行转义码,\n而不必创建新的文字行。

使用文字新行:

#!/bin/sh
screen -S Run -X stuff 'stop
'

使用转义字符:

#!/bin/sh
screen -S Run -X stuff 'stop\n'

相关内容