Sie können ein Shell-Skript nicht von der screen
Sitzung aus starten, da es die alte Umgebung erben würde. Sie können jedoch ein FIFO verwenden, um die neuen Umgebungsvariablen in die alte Bildschirmsitzung zu übernehmen. Sie können dieses FIFO füllen, wenn Sie Ihre grafische Sitzung starten.
#!/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
Starten Sie das Skript beim Anmelden im Hintergrund (es wird nur beendet, wenn alle Variablen daraus gelesen werden).
Nun können Sie aus dem FIFO lesen, zB diese Funktion zu Ihrem hinzufügen .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 }
so können Sie in Ihrer alten screen
Sitzung
update_session