Bu çözüm # 2 kılavuzuna uymuyor mu - yoksa belli belirsiz sandviç şeklinde sayılıyor mu? Başlangıçta bir çeşit palindrome temasına girdim, ancak çizgileri topallamaya başvurmadan simetrik yapmak için pek çok yol bulabildim real code # ecod laer
. Rehber 1'i çok ciddiye almadım, estetik önce gelir.
Bir makefile olduğunu unutmayın; 3 ardışık çizgiler ile başlayan if
, rm
ve echo
bir sekme ile başlar. Diğer girintili çizgiler boşluklarla başlar.
me : mr ; env | grep -q DO_US || rm -- mr || SU_OD q- perg | vne ; rm : em
.SILENT:##:TNELIS.
. = a. .a = .
$(.:.=):;:>$@
sandwich:
if expr>/dev/null $$(id -u); then echo 'What? Make it yourself'; fi
rm f- a me mr 2>/dev/null
echo Okay
mr : ; true : ; touch me : em f- mr || rm -f me : em hcuot ; : eurt ; : rm
Kullanım (komutlar herhangi bir sırayla verilebilir):
$ sudo make me a sandwich
Okay
$ sudo make me sandwich
make: *** [sandwich] Error 1
$ sudo make a sandwich
make: *** [sandwich] Error 1
$ sudo make sandwich
make: *** [sandwich] Error 1
$ make me a sandwich
What? Make it yourself
make: *** [sandwich] Error 1
İlke # 3'e gelince, bu akıllıca gizli değil, sadece biraz garip. Bazı ipuçları:
İki farklı testler vardır: için tek arama SUDO_USER
ve biri deney olmadığını id -u
baskılar 0. neden görebilirsiniz Do What?
edilir değil root için basılmış? SUDO_USER
Sebeplerin eksikliğinin nasıl Okay
yazdırılmayacağını görüyor musunuz ?