이 솔루션은 가이드 라인 # 2를 준수하지 않거나 모호한 샌드위치 모양입니까? 나는 처음에 일종의 회문 테마를 진행했지만, 절름발이에 의존하지 않고 선을 대칭으로 만드는 많은 방법을 찾을 수있었습니다 real code # ecod laer
. 나는 가이드 라인 # 1을 매우 진지하게 고려하지 않았으며, 미학이 먼저입니다.
그것이 makefile이라는 것을 기억하십시오. 3 개 연속 라인으로 시작 if
, rm
그리고 echo
탭으로 시작합니다. 들여 쓰기 된 다른 줄은 공백으로 시작합니다.
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
사용법 (명령은 임의 순서로 발행 할 수 있음) :
$ 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
지침 # 3에 관해서는, 이것은 영리하게 숨겨져 있지 않고 약간 이상하게도 숨겨져 있습니다. 몇 가지 힌트 :
두 가지 다른 테스트가 있습니다. 하나는을 검색 SUDO_USER
하고 다른 하나 id -u
는 0을 인쇄 하는지 여부에 대한 테스트입니다. 루트로 인쇄 되지 않은 이유 What?
는 무엇입니까? 원인 부족 이 인쇄되지 않는 방법을 알고 있습니까?SUDO_USER
Okay