我在Ubuntu的一個bash腳本,激活功能(即我也寫了)這是位於同一個腳本,並設置它在後臺運行,以下列方式:如何從外部更改bash腳本中的全局變量,以便更改反映在while循環中?
my script:
.
.
my_func &
do some stuff (that i don't know how much time it's gonna take)
global_var=1
my_func,並將是一個函數有一個while循環,它的條件是運行,而
global_var -ne 1
但它不起作用。在將值更改爲1後,循環中的更改似乎不會傳播到函數,因爲while循環保持運行。
my_func,並將收集的統計數據對我的腳本性能,因此它具有優雅finsih,我不能只是程序完成後強制殺死它。這就是爲什麼我必須能夠告訴它停止。
需要幫助,告訴它停下來。
後臺進程不能在同一個shell中運行,並且不會與父shell共享內存。 – choroba
每個子shell都有它自己的環境副本,你最好創建一個鎖文件或類似的東西,並檢查它是否存在,這將獨立於shell環境。 – 123