Giải pháp này không tuân thủ hướng dẫn số 2 - hoặc có bị mơ hồ đếm hình bánh sandwich không? Tôi đã đi vào một loại chủ đề palindrom lúc đầu, nhưng tôi chỉ có thể tìm thấy rất nhiều cách để làm cho các đường đối xứng mà không cần dùng đến sự khập khiễng real code # ecod laer
. Tôi đã không coi trọng hướng dẫn số 1, thẩm mỹ là ưu tiên hàng đầu.
Hãy nhớ rằng đó là một makefile; 3 dòng liên tiếp bắt đầu với if
, rm
và echo
bắt đầu với một tab. Các dòng thụt lề khác bắt đầu bằng khoảng trắng.
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
Cách sử dụng (các lệnh có thể được ban hành theo thứ tự bất kỳ):
$ 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
Đối với hướng dẫn số 3, điều này không được giấu khéo léo, chỉ hơi kỳ lạ. Một số gợi ý:
Có hai bài kiểm tra khác nhau: một tìm kiếm SUDO_USER
, và một bài kiểm tra về việc liệu id -u
in 0. Đỗ bạn thấy tại sao What?
là không in cho rễ? Bạn có thấy làm thế nào thiếu SUDO_USER
nguyên nhân Okay
không được in?