即使加上$符,也只能在當前shell里面刪除父進程繼承下來的變量,但是對父進程是不會影響的。通過env環境變量查看命令可以看到。
也就是說,定義一個環境變量(全局變量),它的子進程都會通過fork函數享有這個變量所在的內存區。如果在子進程中unset了這個變量,子進程中就會釋放該內存。但是對父進程是不會有影響的。exit子進程后,通過env還會看到先前定義的環境變量。在bash一個子進程,會發現又繼承里父進程的環境變量。。是因為不是同一個子進程。通過echo $$可以看當前bash pid號。
就像一父親生了兩個兒子。都會繼承了父親的優良基因。大兒子卻做了個小手術,導致不是兒子了。小兒子沒動根
也就是說,定義一個環境變量(全局變量),它的子進程都會通過fork函數享有這個變量所在的內存區。如果在子進程中unset了這個變量,子進程中就會釋放該內存。但是對父進程是不會有影響的。exit子進程后,通過env還會看到先前定義的環境變量。在bash一個子進程,會發現又繼承里父進程的環境變量。。是因為不是同一個子進程。通過echo $$可以看當前bash pid號。
就像一父親生了兩個兒子。都會繼承了父親的優良基因。大兒子卻做了個小手術,導致不是兒子了。小兒子沒動根
2016-06-21