आज, मैं ट्विटर के लिए एक पासवर्ड जनरेटर गोल्फ को कोड करने का प्रयास करते हुए रंगे हाथों पकड़ा गया।
import string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9))
90 चरस। चूंकि यह बहुत अधिक खाली स्थान है, इसलिए मैंने बार को बढ़ाने और इसे निष्पादन योग्य बनाने का फैसला किया।
echo -e "#!/usr/bin/python\nimport string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9))">pg;chmod +x pg;./pg
139 वर्ण। अच्छा है, सिवाय इसके कि विस्मयादिबोधक बिंदु पर चोट के निशान।
badp@delta:~$ echo -e "#!/usr/bin/python\nimport string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9))">pg;chmod +x pg;./pg
bash: !/usr/bin/python\nimport: event not found
पेस्की विस्मयादिबोधक बिंदु। "चलो इसे से बचने," मैंने सोचा! मेरे पास एक के बाद एक चरित्र हैं।
echo -e "#\!/usr/bin/python\nimport string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9))">pg;chmod +x pg;./pg
जाहिर है...
badp@delta:~$ echo -e "#\!/usr/bin/python\nimport string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9))">pg;chmod +x pg;./pg
./pg: line 2: syntax error near unexpected token `('
./pg: line 2: `import string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9))'
badp@delta:~$ cat pg
#\!/usr/bin/python
import string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9))
अपने असिन कोड को एक तरफ छोड़ते हुए - मैं इसे समझा नहीं सकता।
इसके साथ \!, विस्मयादिबोधक बिंदु बच गया था, सिवाय इसके कि यह वास्तव में नहीं था, क्योंकि इसे लेने के \!लिए छोड़ दिया गया था echo।
\x21इसके बजाय एक समाधान का उपयोग किया जा सकता था , लेकिन मैं आश्वस्त नहीं हूं कि बैश कमांड में एक विस्मयादिबोधक बिंदु से बचने का उचित तरीका है।
tl; डॉ: कैसे आप ठीक ढंग से एक बैश आदेश में एक विस्मयादिबोधक बिंदु भागने करते हैं?
!:0 !$और !^इतना समय और टाइपिंग बचाना।
!eventमें पहले स्थान पर वाक्य रचना का उपयोग करता है? यह हमेशा मुझे ही परेशान करता है।