Wyzwanie: Napisz plik makefile, który doprowadziłby do takiego zachowania:
% make me a sandwich
What? Make it yourself
% sudo make me a sandwich
Okay
Zasady:
- Powinien działać na komputerze z systemem Linux, na którym użytkownik nie jest rootem, ale może go używać
sudo
. - Nie wolno mówić
Okay
żadnemu krótszemu poleceniu make (npsudo make sandwich
.). - Drugie polecenie powinno działać z powodu
sudo
, a nie dlatego, że jest to drugie wywołanie.
Wytyczne:
- Krótko mówiąc (w końcu jest to strona Code Golf).
- Byłoby miło, gdyby rzeczywiście zrobił kanapkę.
- Spróbuj sprytnie ukryć, dlaczego to
sudo
robi różnicę.
Zwycięzca zostanie wyłoniony w drodze głosowania.
popularity-contest
ugoren
źródło
źródło
make
.Odpowiedzi:
Dobra, ugryzę. Niekoniecznie musi to być zgodne z wytyczną nr 3, ale dobrze spełnia pozostałe dwie wytyczne. Oczyszcza się także po sobie, jak powinien każdy dobry producent kanapek.
(Mniej buggy i mam nadzieję, że nieco mniej nudne, niż moje początkowe zgłoszenie.)
źródło
sudo make me sandwich
.&& test -e ./a
Dość kompaktowe rozwiązanie, które ignoruje wytyczną nr 2 (127 znaków, w tym niektóre niepotrzebne białe znaki). Śledzę praktyki Breadbox jest o sprzątanie po sobie. Nie umieszczaj żadnych innych plików w tym samym katalogu, co plik makefile! Zauważ też, że plik makefile musi zostać wywołany
Makefile
, inne nazwy nie będą działać.Stosowanie:
Podoba mi się sposób, w jaki ten radzi sobie z wytyczną nr 3. Tylko jedno naciśnięcie Shiftrobi różnicę.
źródło
To rozwiązanie nie jest zgodne z wytyczną nr 2 - czy liczy się nieokreślony kształt kanapki? Na początku zajmowałem się rodzajem palindromu, ale mogłem znaleźć tylko tyle sposobów, aby linie były symetryczne bez uciekania się do kulawizny
real code # ecod laer
. Wytycznej nr 1 nie potraktowałem poważnie, estetyka jest na pierwszym miejscu.Pamiętaj, że jest to plik makefile; na 3 kolejne linie począwszy
if
,rm
aecho
zaczynają się zakładki. Inne wcięte linie zaczynają się od spacji.Sposób użycia (polecenia mogą być wydawane w dowolnej kolejności):
Jeśli chodzi o wytyczną nr 3, nie jest to sprytnie ukryte, tylko nieco dziwnie. Kilka wskazówek:
źródło
Oto pierwsze użycie innej i prostszej techniki:
Jestem prawie pewien, że mogę coś więcej z tym zrobić - na przykład odpowiedzieć na inne polecenia wejściowe. Będę musiał popracować nad zaciemnieniem przełącznika głównego i faktycznym przygotowaniem kanapki.
źródło