Esta solución no se adhiere a la directriz n. ° 2, ¿o contar vagamente en forma de sándwich? Comencé con una especie de tema de palíndromo al principio, pero solo pude encontrar tantas formas de hacer que las líneas sean simétricas sin recurrir a cojo real code # ecod laer
. No tomé muy en serio la directriz # 1, la estética es lo primero.
Recuerda que es un archivo MAKE; las 3 líneas sucesivas que comienzan con if
, rm
y echo
comienzan con una pestaña. Las otras líneas sangradas comienzan con espacios.
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
Uso (los comandos se pueden emitir en cualquier orden):
$ 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
En cuanto a la directriz # 3, esto no está inteligentemente oculto, solo un poco extraño. Algunos consejos:
Hay dos pruebas diferentes: una búsqueda de SUDO_USER
, y una prueba de si id -u
las impresiones 0. ve usted por qué What?
se no impresa de la raíz? ¿Ves cómo la falta de SUDO_USER
causas Okay
no se imprime?