私は次のスクリプトを持っています
screen -d -m -S $1 #start screen minimized
screen -S $1 -X stuff "$beast
" #stuff commands
最初に画面を取り付けない限り、ものの影響は何もしないようですか?これはなぜですか。また、画面を添付する必要がないようにこのスクリプトを変更するにはどうすればよいですか。
切り離しモード(screen -d -m
)でScreenセッションを開始すると、ウィンドウが選択されないため、後でscreen -X stuff
で送信された入力は失われます。キーストロークをウィンドウ0(-p 0
)に送信することを明示的に指定する必要があります。何らかの理由でそのScreenセッションで他のウィンドウを作成した場合に備えて、これはとにかく良い考えです。
screen -S "$1" -p 0 -X stuff "$beast$(printf \\r)"
(printf \\r
は、厳密にエミュレートします Return キー;すべてではありませんが、多くのプログラムが改行を受け入れます(\n
))。
これは最近、答えようとしているときに出てきました nix.stackexchange.comの質問 。
要約すると、アタッチしない限り、画面にはデフォルトで選択されたウィンドウがありませんが、Gillesは、引数-p 0
を画面コマンドに追加することで、どのようにできるかを示しました 強制的に選択されます 。
個人的に 私はお勧めしますtmux
に切り替えます。画面コマンドをtmuxで機能するように移植する方法は次のとおりです。
tmux new-session -d -n $1
tmux send-keys -t $1 "$beast\n"