linux环境变量重复设置,请叫下环境变量重复设置的问题
把下面的腳本保存在一個shell里面,運行一次沒有問題,但是運行兩次的話,$DSAGENT_HOME/bin會加上兩次,因為第二次path里面已經有了$DSAGENT_HOME/bin,再加上前面一次的。
這樣如果多次運行的話,雖然功能是好的,但是path會有很大的冗余,不確定會不會對效率產生什么壞處。請高人明示。
請教:有沒有那種寫法,既能把已有的path加上這次的,又不重復變。非常感謝
PATH=$DSAGENT_HOME/bin:$PATH
|
那就自己在添加新路徑前判斷一下PATH是否已經包含了需要添加的路徑,比如:
echo?$PATH?|?grep?“$DSAGENT_HOME”?||?PATH=$DSAGENT_HOME:$PATH
|
modify?your?.bash_profile,?add?the?path:)
|
當然會,1)?path用來搜索可執行文件的路徑。如果你重復包含一個path,意味著?如果在此之前沒有找到文件的話?,他會重復搜索你的path。效率當然會受到影響。
2)?要解決這個問題,一般在用戶登錄時,設置其path就ok了。當然你可以寫一個腳本,只運行一次來設置路徑。
|
通常情況下,
用戶登錄系統時,bash首先執行/etc/profile配置文件和/etc/profile.d/目錄下的配置文件,這些配置文件對系統的所有用戶都有效,它們設置了普遍性的環境變量.然后,bash會執行登錄用戶主目錄下的.bashrc和.bash_profile文件,
通過這兩個配置文件設置用戶個性化的環境變量,并且可以重復設置前面配置文件中設置的選項,覆蓋它們的設置值.用戶主目錄下面的.bashrc文件會執行/etc?/bashrc文件來完成環境變量的設置.
用戶主目錄下的.bash_profile設置為每次登錄時執行,而.bashrc則被設置為在每次打開新的終端時執行,即打開新的終端而不需要重新,接受初始登錄環境變量.
如果用戶需要添加或修改某個環境變量,使其每次登錄時都會存在和具有用戶指定的值,則需要修改該用戶主目錄下的.bashrc文件.但是以其它用戶身份登錄后,則不會有這個環境變量的存在,這是因為,在上面修改的僅僅是前面用戶私有的shell環境配置文件.如果需要使這個環境變量的修改對所有的用戶都有效,只需要以root的身份修改/etc/profile文件.
PATH變量決定了shell將到哪些目錄中尋找命令或程序.如果要執行的命令的目錄在$PATH中,用戶就不必輸入這個命令的完整路徑,直接輸入命令就可以了(如果有".路徑"可執行文件也可以直接執行,而不需要在其前面加./了.可以這樣設置:
1、在/etc/profile末添加PATH=$PATH:.
export?PATH
2、。?/etc/profile).
|
另外一個可能的影響就是:PATH是一個系統變量,它的值長度是有限制的,所以當過長時就會出現問題,具體允許的長度自己去查找一下吧。
總結
以上是生活随笔為你收集整理的linux环境变量重复设置,请叫下环境变量重复设置的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: taskspawn函数 linux,vx
 - 下一篇: 楚留香捏脸最高评价是什么