我已经成功运行命令
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'