आज, मैं ट्विटर के लिए एक पासवर्ड जनरेटर गोल्फ को कोड करने का प्रयास करते हुए रंगे हाथों पकड़ा गया।
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
में पहले स्थान पर वाक्य रचना का उपयोग करता है? यह हमेशा मुझे ही परेशान करता है।