如何让 GNU 屏幕分别在每个屏幕中创建唯一的环境变量

How get GNU screen to create unique enviroment variables in each screen separately

我目前运行服务器中的python和shell脚本中的一堆脚本。

我运行使用 GNU screen 让他们运行并行。

counter=0

while read -r word; do
    counter=$(( counter + 1))
    screen -dmS $counter sh -c "python3 script1.py $word;exec bash"
done </home/user/Documents/wordlist.txt

counter=$(( counter + 1))
screen -dmS $counter sh -c "python3 script2.py;exec bash"

counter=$(( counter + 1))
screen -dmS $counter sh -c "python3 script3.py;exec bash"

这个单词列表有 5 个单词,所以它创建了 5 个进程。 然后还有 2 个进程,总共 7 个进程。每个屏幕根据计数器命名为屏幕 1-7。

如何让每个屏幕进程创建一个环境编号,以便它可以根据计数器记住它是什么进程编号,以便在它结束时我可以将它用于其他事情。

这样一来,如果我在 6 号屏幕上,我可以输入 $PROCESSNUMBER 来记住这是 6 号。最好,我可以 运行 在每个屏幕上使用相同的命令。

你是 运行 那里的 shell 命令,所以只需导出一个变量:

screen -dmS $counter sh -c "export PROCESSNUMBER=$counter; python3 script3.py;exec bash"