Вы не можете запустить сценарий оболочки из screen
сеанса, так как он унаследует старую среду. Однако вы можете использовать fifo для добавления новых переменных среды в старый сеанс экрана. Вы можете заполнить этот fifo, когда начнете свой графический сеанс.
#!/bin/bash FIFO=/tmp/your_variables [ -e $FIFO ] && cat $FIFO > /dev/null || mkfifo $FIFO # save number of variables that follow NVARS=2 echo $NVARS > $FIFO echo ENV1=sth1 > $FIFO echo ENV2=sth2 > $FIFO
Запустите этот скрипт в фоновом режиме при входе в систему (он прекратит работу, когда все переменные будут считаны из него).
Теперь вы можете читать с fifo, например, добавить эту функцию в свой .bashrc
update_session() { FIFO=/tmp/your_variables NVAR=$(cat $FIFO) for i in $(seq $NVAR); do export $(cat $FIFO) done #delete the pipe, or it will not work next time rm $FIFO }
так что вы можете в своей старой screen
сессии
update_session