2010-09-01 13 views
10

मैं एक बैश स्क्रिप्ट लिखने की कोशिश कर रहा हूं जिसमें मैं उपयोगकर्ता नाम और पासवर्ड प्राप्त करके, एक सांबा सर्वर से कनेक्ट करता हूं, फिर $ उपयोगकर्ता नाम कहता हूं: $ पासवर्ड @ SERVERNAME।एक smb के पासवर्ड फ़ील्ड में @ साइन से कैसे बचें: // URL

हालांकि, अगर पासवर्ड में @ @ है तो यह असफल हो जाएगा। क्या बैश में पासवर्ड से बाहर निकलने का कोई तरीका है?

अग्रिम धन्यवाद

अद्यतन: मैं इस नेटवर्क प्रिंटर सेट कर रहा हूं

lpadmin -p PRINTER -v smb://$username:[email protected] -E 

और यह मामला डॉलर पासवर्ड उस में एक @ चिह्न है में छोड़कर काम करता है; $ उपयोगकर्ता नाम और $ पासवर्ड चर पढ़ने के लिए stdin

+0

केवल दोहराएं – ghostdog74

+1

मुझे लगता है कि समस्या बैश में नहीं है, लेकिन सांबा को यह पहचानने में कि कौन सा '@' पासवर्ड में है और कौन सा '@' पासवर्ड के अंत को चिह्नित करता है। और मुझे संदेह है कि ऐसा करने का एक तरीका है, लेकिन यदि ऐसा है, तो आपको जानकारी के लिए सांबा मैनुअल को देखने की आवश्यकता होगी। 'डॉक्टर, डॉक्टर, जब मैं खुद को इस तरह मारा तो दर्द होता है'? या, दूसरे शब्दों में, पासवर्ड में '@' का उपयोग न करें क्योंकि इससे दुःख होता है। –

+1

शायद '' '' '40 'के साथ सभी' @ 'को बदलने का प्रयास करें ... मुझे नहीं लगता कि यह काम करेगा लेकिन शायद यह चल रहा है। उन्हें बदलने के लिए '$ पासवर्ड = $ {पासवर्ड // @ /% 40}' का उपयोग करें। – dreamlax

उत्तर

5

आह, नहीं, यह वास्तव में बैश के लिए उद्धरण का विषय नहीं है, लेकिन सांबा के लिए उद्धरण है।

lpadmin -p PRINTER -v smb://$username:[email protected] -E 

जो बैश कर्तव्यनिष्ठा का विस्तार

lpadmin -p PRINTER -v smb://alice:[email protected]@SERVER -E 

के लिए और फिर सांबा क्लाइंट लाइब्रेरी सोचता पासवर्ड पहले @ चिह्न पर समाप्त होता है और यह [email protected] नाम के एक सर्वर से कनेक्ट करने चाहिए था: आप इस राशि , कभी भी ध्यान न रखें कि आप वास्तव में उस नाम को DNS में नहीं डाल सकते हैं।

lpadmin, कप से आता नहीं साम्बा (here is its manpage) और से, उन डॉक्स के माध्यम से पढ़ने के लिए थोड़ा, मुझे लगता है कि आप इस वैकल्पिक सिंटैक्स का उपयोग करने में सक्षम हो सकता है:

lpadmin -p PRINTER -U "${username}%${password}" -v smb://SERVER -E 

मुझे आश्चर्य के रूप में से बचने कर रहा हूँ @%40 हालांकि काम नहीं करता है। मुझे सांबा क्लाइंट लाइब्रेरी में एक बग की तरह लग रहा है।

+0

आप सही हैं, यह सांबा है; मैंने यह प्रश्न दिखाने के लिए प्रश्न अपडेट किया है कि आप क्या पूछ रहे हैं। – codersarepeople

+0

धन्यवाद! मेरा जवाब अपडेट किया गया है, वास्तव में आपके लिए एक फिक्स हो सकता है। – zwol

+0

क्या -यू चीज काम करती थी? – zwol

3

मैं प्रिंटर जोड़ने के लिए http://localhost:631/ पर कप व्यवस्थापक का उपयोग करता हूं। एन्कोडिंग @% 40 के रूप में मेरे लिए काम किया।

+0

भी मेरे लिए काम किया। – Ingo