bash: URL से स्रोत


5

अपने स्वयं के कंप्यूटर के अलावा, मैं कभी-कभी अपने स्कूल में एक उबंटू क्लस्टर का उपयोग करता हूं। मैन्युअल रूप से अपने .bashrc को सिंक में रखने के बजाय, मैं एक URL के माध्यम से ड्रॉपबॉक्स से स्कूल क्लस्टर का .bashrc स्रोत को अपना व्यक्तिगत .bashrc बनाना चाहूंगा। हालांकि, जब मैं भोलेपन से कोशिश करता हूं source http://myurl, मुझे बस एक त्रुटि मिली: http://myurl: No such file or directory। मैं ऑनलाइन स्थित स्क्रिप्ट से कैसे bash को स्रोत प्राप्त कर सकता हूं?

सबसे खराब स्थिति, मैं एक नामित पाइप और स्रोत को कर्ल कर सकता हूं। क्या कोई और अधिक सुंदर है?

जवाबों:


10

आप के साथ प्रक्रिया प्रतिस्थापन का उपयोग कर सकते हैं source:

source <(curl -s http://example.com/foo)

नोट: मुझे लगता है कि इंटरनेट पर सीधे चल रहे कोड को एक गंभीर सुरक्षा जोखिम माना जाता है। यह शायद कम जोखिम भरा है अगर यह एक आंतरिक नेटवर्क पर किया जाता है (इसकी समग्र सुरक्षा पर निर्भर करता है)।


चतुर! अच्छी बात यह है कि एक हमलावर मुझे आसानी से किसी भी कोड को खिला सकता है जो वे चाहते हैं।
AlcubierreDrive

लिनक्स पर काम करता है, OSX पर विफल रहता है। इसके बजाय OSX के लिए एक टेंपरेचर लिखना।
Edward Anderson

@nilbus: के अनुसार इस , आप कोशिश कर सकते हैं source <(curl -s http://example.com/foo | iconv -f windows-1251)
Dennis Williamson

उस त्रुटि से छुटकारा मिल गया, लेकिन स्क्रिप्ट अभी भी OSX पर नहीं चली।
Edward Anderson

इसका एक हिस्सा जो मुझ पर उछलता है, वह तथ्य यह है कि मैं मुख्य स्क्रिप्ट को ^ H ^ H ^ H ^ से एक चर सेट कर सकता हूं और उस चर को बिना पढ़ी-लिखी स्क्रिप्ट में पुन: व्यवस्थित करने के लिए कॉल कर सकता हूं। curl <file> | /bin/bash चरों को निर्यात किए बिना अनुमति नहीं दी जाएगी।
dafydd

-1

तुम सिर्फ उपयोग नहीं कर सकते

curl http://example.com/whatever.sh | bash 

यह काम करता है और यह वही है जो मैं वर्तमान में कर रहा हूं, लेकिन मैं सोच रहा था कि क्या कोई और सुंदर तरीका है लेकिन शायद यह सबसे अच्छा है, इसलिए अगर जल्द ही कुछ नहीं हुआ तो मैं आपका जवाब स्वीकार करूंगा।
AlcubierreDrive

इसके अलावा, ध्यान दें कि यह मेरे .bashrc में जा रहा है, इसलिए तकनीकी रूप से आपका समाधान अनंत पुनरावृत्ति है। ;) लेकिन मुझे पता है कि आपका क्या मतलब था।
AlcubierreDrive

3
पाइपिंग आदेश bash उन्हें एक अलग प्रक्रिया में निष्पादित करेगा, जो निष्पादन के लिए इस पद्धति को अनुपयोगी बनाता है bashrc
grawity

1
निर्भर करता है कि कमांड क्या हैं - लेकिन हां, माफ करना मैं सहमत हूं
John Burton
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.