/ / उद्धरण के कई स्तरों के साथ स्क्रिप्ट में खोल पर भागने से रोकना - लिनक्स, बैश, खोल

उद्धरण के कई स्तरों के साथ स्क्रिप्ट में खोल पर भागने से रोकना - लिनक्स, बैश, खोल

मैं अपनी .zshrc फ़ाइल के अंत में निम्न पंक्तियों को एक स्थापित स्क्रिप्ट में जोड़ना चाहता हूं जो चल रहा है:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

.Zshrc फ़ाइल ने रूट द्वारा केवल पहुंच को लिखा है, और मैं एक और उपयोगकर्ता हूं (लेकिन सुडो पहुंच के साथ)।

ऐसा करने का एक तरीका निम्न के जैसा है:

sudo bash -c "echo "export PATH="$HOME/.rbenv/bin:$PATH"" >> ~/.zshrc"

मुख्य समस्या यह है कि $ HOME और $ PATHखेतों के साथ-साथ $ () अनुभाग को तब व्याख्या किए गए मानों के साथ प्रतिस्थापित करने के बाद डाला जाता है। मैं बाहर एक सिंगल उद्धरण डाल सकता था, लेकिन मुझे एक डबल कोट का उपयोग करने की आवश्यकता है जहां पहले एकल उद्धरण वर्तमान में है, जो बाद में व्याख्या करता है।

मैं सम्मिलन से पहले चर / आदेशों को समझने के बिना इसे कैसे करने के बारे में किसी भी मदद की सराहना करता हूं। क्या हेड्रोक ऐसा करने का एक आसान तरीका है?

उत्तर:

उत्तर № 1 के लिए 1

रखकर परिवर्तनीय विस्तार से बचें से पहले $:

sudo bash -c "echo "export PATH="$HOME/.rbenv/bin:$PATH"" >> ~/.zshrc"

जवाब के लिए 0 № 2

बस सही उद्धरणों का उपयोग करें। और उनके बीच स्विच करने से डरो मत।

sudo bash -c "echo "export ""PATH="$HOME/.rbenv/bin:$PATH""""" >> ~/.zshrc"