3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
任何流程都不能更改其父流程(或任何其他現(xiàn)有流程的環(huán)境)。
但是,您可以通過(guò)使用修改后的環(huán)境創(chuàng)建新的交互式外殼來(lái)創(chuàng)建新環(huán)境。
您必須生成使用升級(jí)環(huán)境并可以訪問(wèn)現(xiàn)有stdin,stdout和stderr的Shell的新副本,并進(jìn)行其重新初始化。
您需要執(zhí)行類似use subprocess.Popen的操作/bin/bash -i
。
因此,原始外殼運(yùn)行Python,而新外殼運(yùn)行。是的,您正在運(yùn)行許多進(jìn)程。不,還算不錯(cuò),因?yàn)樵嫉膕hell和Python除了等待子shell完成以使它們也可以干凈退出之外,實(shí)際上并沒(méi)有做任何事情。

TA貢獻(xiàn)1752條經(jīng)驗(yàn) 獲得超4個(gè)贊
對(duì)于任何子進(jìn)程,都無(wú)法更改父進(jìn)程的環(huán)境。最好的辦法是將shell語(yǔ)句輸出到標(biāo)準(zhǔn)輸出,然后將其輸出,或?qū)⑵鋵懭氲皆诟讣?jí)中輸出的文件中。
添加回答
舉報(bào)