答えの例では、「何か」とはどういう意味ですか?画面上でプログラムを実行し、すべての出力をファイルにリダイレクトして分離する方法これは、コマンドが$ ''領域の後ろにあるためです。
screen -S workspace -X stuff $'ps aux > output-x\n'
答え1
~によるとコメント:
stuffはユーザーが入力したとおりに文字を送信します。
これは、セッションが特定の時点(つまり作成時に)に接続されている場合にのみ機能するようです。また、文字を送信するため、コマンドを実行するには改行文字を送信する必要があります。
Linuxの場合、私に役立つ手順は次のとおりです。
screen -S some_session_name
- Ctrl+A D別れ
screen -S some_session_name -X stuff 'command'$(echo -ne '\015')
私から指示を受けました。「ターミナル/ライフ」投稿:スクリーンセッションにコマンドを送信する。
答え2
~から手動:
現在のウィンドウの入力バッファを文字列で埋めます。
会議は必ずいいえ取り付けに時間がかかります。
分析してみましょう。
- GNU画面実行中のプログラムの接続を切断して後で再接続できるプログラムです。
screen -dmS workspace
切断された新しい画面を作成します。screen -S workspace -X [command]
送る[注文する]到着画面セッションコールワークスペース。- [注文する]bashコマンドではありません。これは単なる内部コマンドです。画面
CTRL+A
...:
接続したときに押すのと同じ画面セッションは大丈夫です。 - 他の例[注文する]はい
detach
またはsessionname myNewName
。 - これ[注文する]選択したユーザーは
stuff
- これだけ「テキストの貼り付け」そのセッションに入ってください。 stuff
引数として文字列が必要です... したがって、送信してからstuff "hello"
screenセッションに再接続すると、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