Hernandi F. Krammes F. Asked: 2020-03-06 12:56:10 +0800 CST2020-03-06 12:56:10 +0800 CST 2020-03-06 12:56:10 +0800 CST 使用两个值的屏幕参数 -X 的误用 772 在如何在屏幕中运行程序,将所有输出重定向到文件并分离的示例中,“东西”的含义是什么,因为该命令位于 $'' 区域之后。 screen -S workspace -X stuff $'ps aux > output-x\n' 如何在屏幕中运行程序,将所有输出重定向到文件并分离 gnu-screen 2 个回答 Voted Best Answer Jeff 2020-03-18T13:44:57+08:002020-03-18T13:44:57+08:00 根据评论: stuff 发送字符,就像您输入它们一样 这似乎只有在会话附加到某个时间点时才有效,即在创建时。此外,由于它发送字符,因此执行命令需要发送换行符。 对于 Linux,对我有用的步骤: screen -S some_session_name Ctrl+A D分离 screen -S some_session_name -X stuff 'command'$(echo -ne '\015') 我从这篇“终端/生活”帖子中得到了说明:将命令发送到屏幕会话中。 Hicsy 2020-05-03T10:50:10+08:002020-05-03T10:50:10+08:00 从手册: 将字符串 string 填充到当前窗口的输入缓冲区中。 会话绝对不需要附加。 让我们分解一下: gnu screen是一个程序,它使您能够断开与正在运行的程序的连接,然后稍后重新连接到它们。 screen -dmS workspace创建一个已断开连接的新屏幕。 screen -S workspace -X [command]将[command]发送到名为workspace的屏幕会话。 [command]不是 bash 命令;它只是屏幕的一个内部命令......当正常连接到屏幕会话时CTRL+A,与按相同。: 其他示例[command]是detachor sessionname myNewName。 用户选择的[command]stuff是- 只是将文本“粘贴”到它的会话中。 stuff期待一个字符串作为参数...因此,如果您提交stuff "hello"然后重新连接到您的屏幕会话:您将看到hello键入的单词,其后带有闪烁的光标... 您可以通过在文本末尾放置一个换行符(例如或)来欺骗screen执行您“粘贴”的文本。\n^M 因此,现在,如果您将“粘贴”字符串从更改"hello"为"hello^M"完整命令,将如下所示:screen -S workspace -X stuff "hello^M"... 现在,当您重新连接到屏幕时,您会看到它显示Command 'hellohello' not found.. 现在,我们只需将粘贴的文本替换hello为我们想要执行的任何内容! 例子: screen -ls > "No Sockets found." screen -dmS workspace screen -ls > "There is a suitable screen on..." screen -S workspace -X stuff "echo Hello World! PID $$ > hello.txt^M" cat hello.txt > Hello World! PID 1234
根据评论:
这似乎只有在会话附加到某个时间点时才有效,即在创建时。此外,由于它发送字符,因此执行命令需要发送换行符。
对于 Linux,对我有用的步骤:
screen -S some_session_name
screen -S some_session_name -X stuff 'command'$(echo -ne '\015')
我从这篇“终端/生活”帖子中得到了说明:将命令发送到屏幕会话中。
从手册:
会话绝对不需要附加。
让我们分解一下:
screen -dmS workspace
创建一个已断开连接的新屏幕。screen -S workspace -X [command]
将[command]发送到名为workspace的屏幕会话。CTRL+A
,与按相同。:
detach
orsessionname myNewName
。stuff
是- 只是将文本“粘贴”到它的会话中。stuff
期待一个字符串作为参数...因此,如果您提交stuff "hello"
然后重新连接到您的屏幕会话:您将看到hello
键入的单词,其后带有闪烁的光标...screen
执行您“粘贴”的文本。\n
^M
"hello"
为"hello^M"
完整命令,将如下所示:screen -S workspace -X stuff "hello^M"
... 现在,当您重新连接到屏幕时,您会看到它显示Command 'hellohello' not found.
.hello
为我们想要执行的任何内容!例子: