簡體   English   中英

同時在屏幕上並行和串行運行 shell 腳本

[英]Run a shell script on a screen in parallel and serially at the same time

我想在 GNU 屏幕內的 shell 腳本中運行 3 個命令。

以下是來自script.sh的內容。

counter=$((counter + 1))
screen -dmS $counter sh -c \
"command1;exec bash;\
python3 script2.py ${word};exec bash &&\
command3;exec bash"

當我運行./script.sh 我想先運行 command1,然后運行 ​​python3 script2。 我只想在 python3 script2 完成后運行 command3。

我希望能夠打開屏幕並檢查 python3 script2 進程,直到它完成,這就是我這樣做的原因。

但是我可以看到命令 1 和命令 3 正在同時運行。

執行此代碼的正確方法是什么?

因為在 python3 script2.py ${word} 和 exec bash 之間有“,”。 它會在不等待 script2 完成的情況下執行exec bash

exec bash將立即完成並在script2完成之前調用命令 3

我做了以下更改

"command1 ; exec bash;\
python3 script2.py ${word} && exec bash ;\
command3;exec bash"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM