Demure ने पहले से ही आपके विशिष्ट प्रश्न का उत्तर दिया है। हालाँकि यह एक zsh
प्रश्न और है PATH
। तो यहां एक और बिंदु है: मानक चर के अलावा $PATH
, $path
एक सरणी भी है। यहाँ आप अंतर देखते हैं (कॉलन या नहीं ...):
$ print $PATH
/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
$print $path
/bin /usr/bin /usr/local/bin /usr/X11R6/bin
दोनों वेरिएंट स्वचालित रूप से सिंक में रखे जाते हैं। तो, एक सरणी का उपयोग करने का क्या लाभ है?
- उत्तरार्द्ध आप के माध्यम
typeset -U path
से घोषित कर सकते हैं "प्रत्येक दोहराए गए मूल्य की केवल पहली घटना को रखें" (से man zshbuiltins
)। इसका मतलब है कि यह आपके रास्ते को साफ रखता है, भले ही आप क्रमिक रूप से अपना स्रोत बनाते हैं ~/.zshrc
(क्योंकि आपने इसे या जो भी बदल दिया है) और इसे बार-बार समान मूल्यों के साथ अव्यवस्थित न करें।
- आप
path+=(/new/path)
अपने PATH में एक नई निर्देशिका जोड़ने के लिए उपयोग कर सकते हैं । एक तत्व को निकालने के लिए आपको कुछ ट्रिक्स का उपयोग करना होगा, उदाहरण के लिए /programming//q/3435355/2037712 या http://www.zsh.org/mla/users//2005/msg01132.html
- आप आसानी से पथ के माध्यम से तत्वों पर लूप कर सकते हैं
for i ($path) { print $i # or do something else }
अंत में, यहाँ मेरे विन्यास का एक अंश है:
typeset -U path
path=(/new/path1
/new/path2
$path)
export PATH
.zshenv
।