Примечание: вы не можете запустить скрипт, работающий следующим образом из сеанса экрана. И он не откроет в сеансе никаких вкладок ... Это скорее связанный совет, чем реальный ответ на вопрос.
Существует другое решение, если вы соглашаетесь на сеанс экрана, запустив процесс ...
новый скрипт сессии
#!/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.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