注: screen セッションから次の方法でスクリプトを起動することはできません。そして、セッションではタブなしで開きます...質問に対する実際の回答というよりも、関連するヒントです。
プロセスを実行してスクリーンセッションを受け入れる場合は、別の解決策があります...
新しいセッション スクリプト
#!/bin/sh
echo "nouvelle session screen ${sessionName}"
screen -S ${sessionName} init.sh
echo "screen session: done"
echo "go to ${AnyWhere}"
sleep 1
screenexec ${sessionName} "cd ${AnyWhere}"
init スクリプト (ここでは「init.sh」)
#!/bin/zsh
zsh -c "sleep 0.2"
screen -d #detach the initialised screen
zsh #let a prompt running
インジェクション スクリプト (ここでは screenexec)
#!/bin/sh
# $1 -> nom de screen cible $2 -> commande
echo "injection de «${2}» dans la session «${1}» ..."
screen -x "$1" -X stuff "$2" #inject the command
screen -x "$1" -X eval "stuff \015" #inject \n
echo "Done"
この方法を使用すると、画面にコードを簡単に挿入できます。スクリプトがデーモンのように動作する場合は興味深い...
Python でスクリプトを使用する方のために、セッションの作成、セッションの終了、コマンドの挿入を行うための小さなライブラリを作成しました: ScreenUtils.py
マルチウィンドウ画面セッションを処理しない小さなプロジェクトです。
ずっと前に本物のpythonライブラリを作ったことを忘れていました:https://github.com/Christophe31/screenutils