alogic: (Default)
alogic ([personal profile] alogic) wrote2010-03-28 02:44 am
Entry tags:

(no subject)

На линуксовке сегодня хоть и было человек 10, но зато 2 девушки. Ну и конкурс на знание shell оказался серьёзным. Рома придумал 20 на вид простых, примерно однострочных скриптов и надо было отгадать, что они напечатают. Чемпионом оказался админ с многолетним стажем [livejournal.com profile] sphynkx и то я не уверен, что у него хотя бы 13 правильных ответов:) Последнее задание просто восхитило своим философским смыслом. Какой логике следует shell?
if ! !false; then
     echo "Интуиционистская логика"
else
     echo "Классическая логика"
fi

[identity profile] andy-shev.livejournal.com 2010-03-28 02:39 pm (UTC)(link)
[root@localhost ~]# if \! \!false; then echo "o"; fi
bash: !: command not found

[identity profile] ro-che.info (from livejournal.com) 2010-03-28 02:45 pm (UTC)(link)
What's the point? :) Ключевое слово не распознаются как таковое, когда хотя бы часть его заквочена (используя кавычки или бекслеш).

[identity profile] andy-shev.livejournal.com 2010-03-28 02:48 pm (UTC)(link)
[root@localhost ~]# if ! !/bin/false; then echo "o"; fi
bash: !/bin/false: event not found

Зависит от места, в этом поинт. Если запускать из файла, то alogic прав.

[identity profile] ro-che.info (from livejournal.com) 2010-03-28 02:55 pm (UTC)(link)
Это чисто башевская фишка, которая к POSIX Shell не имеет никакого отношения.

[identity profile] alogic.livejournal.com 2010-03-28 05:01 pm (UTC)(link)
В командной строке ещё history expansion делается, где ! свой смысл имеет, поэтому для чистоты эксперимента надо ещё set +H в начале сказать.