问题
I would like to know how to execute a command inside a screen session. i searched and I found this :
screen -S nameofscreen -X stuff "command"
When I type this, the command is typed inside the screen but it is not executed. So my queston is how to press enter using this command.
回答1:
In the bash
shell you can use ctrl-V
to explicitly put non-printable characters into a string. So try ctrl-V
ctrl-L
ctrl-V
ctrl-M
at the end of your command just before the "
.
回答2:
In bash, you can use \n
in the $'...'
construct:
screen -S nameofscreen -X stuff $'command\n'
回答3:
I'd do something like this:
screen -S sessionName bash -c 'cmd; exec bash'
it starts a new session executes cmd
and launches shell (otherwise it'd drop that new session).
-X
will allow you to send input to a specified session -- that's why your command didn't execute. To execute it you'd need to add enter sign like Paul suggested. It can be done with Ctrl+v and then Enter. That will produce that ^M
. So:
screen -S sessionName -X stuff 'cmd^M'
That, in itself, won't however attach a detached session.
来源:https://stackoverflow.com/questions/18406823/how-to-execute-a-command-inside-a-screen-session