Bugün, Twitter için bir şifre üreticisi golf kodlamaya çalışırken redhanded yakalandı.
import string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9))
90 karakter. Çok fazla boş alan olduğu için çıtayı yükseltmeye ve çalıştırılabilir hale getirmeye karar verdim.
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 karakter. Güzel, belli ki bash boğaz ünlem işareti hariç.
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
Pesky ünlem işareti. "Hadi kaçalım," diye düşündüm! Sonuçta bir yedek karakterim var.
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
Açıkçası ...
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))
Asinine kodumu bir kenara bırakıyorum - bunu açıklayamam.
İle \!
ünlem işareti kaçtı, ancak gerçekten değildi, çünkü almak için \!
olduğu gibi bırakıldı echo
.
Bunun \x21
yerine bir çözüm kullanıyor olabilirdi , ama bunun bir bash komutunda bir ünlem noktasından kaçmanın doğru yolu olduğuna ikna olmadım.
tl; dr: Bir bash komutundaki ünlem işaretinden nasıl düzgün çıkıyorsunuz?
!:0
!$
ve !^
çok zaman ve yazım tasarrufu yapıyorum .
!event
sözdizimini ilk etapta kullanan var mı ? Her zaman bana sadece bela verdi.