?

Log in

Олег Цыбульский - [entries|archive|friends|userinfo]
Олег Цыбульский

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

[мар. 28, 2010|2:44]
Олег Цыбульский
[Tags|, ]

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

Comments:
[User Picture]From: andy_shev
2010-03-28 9:51 none (UTC)
!: Command not found
:-)
(Ответить) (Thread)
[User Picture]From: alogic
2010-03-28 13:06 none (UTC)
На самом деле
!false: command not found

Однако ответ будет напечатан и скрипт завершится успешно. Потому что "!" не оператор, а ключевое слово. Ключевые слова шелл распознаёт, только если они стоят в правильном месте, поэтому, следуя завещанию интуиционистов, шелл не сделает отрицание отрицания. Он оставит только отрицание ошибочного результата выполнения неизвестной ему команды "!false".
(Ответить) (Parent) (Thread)
[User Picture]From: andy_shev
2010-03-28 14:39 none (UTC)
[root@localhost ~]# if \! \!false; then echo "o"; fi
bash: !: command not found

(Ответить) (Parent) (Thread)
From: ro-che.info
2010-03-28 14:45 none (UTC)
What's the point? :) Ключевое слово не распознаются как таковое, когда хотя бы часть его заквочена (используя кавычки или бекслеш).
(Ответить) (Parent) (Thread)
[User Picture]From: andy_shev
2010-03-28 14:48 none (UTC)
[root@localhost ~]# if ! !/bin/false; then echo "o"; fi
bash: !/bin/false: event not found

Зависит от места, в этом поинт. Если запускать из файла, то alogic прав.
(Ответить) (Parent) (Thread)
From: ro-che.info
2010-03-28 14:55 none (UTC)
Это чисто башевская фишка, которая к POSIX Shell не имеет никакого отношения.
(Ответить) (Parent) (Thread)
[User Picture]From: alogic
2010-03-28 17:01 none (UTC)
В командной строке ещё history expansion делается, где ! свой смысл имеет, поэтому для чистоты эксперимента надо ещё set +H в начале сказать.
(Ответить) (Parent) (Thread)
[User Picture]From: master_zh
2010-03-28 12:33 none (UTC)

привет!

а разве Дима не говорил, что у победителей было по 7 правильных ответов? или мне показалось?
п.с. в своей жежешечке я ерунду пишу, так что френдить не обязательно)
(Ответить) (Thread)
[User Picture]From: alogic
2010-03-28 13:14 none (UTC)

Re: привет!

Ну как же, я тебя вчера искал в ЖЖ и не зафренжу:)

Я не помню на каком вопросе было по 7 правильных ответов. Решил взять за основу 15. А так да, вполне вероятно что у всех и 10-ти правильных ответов не наберётся.
(Ответить) (Parent) (Thread)
[User Picture]From: master_zh
2010-03-28 13:51 none (UTC)

Re: привет!

:)
вы каждый месяц на линукс-сходку собираетесь, кстати?
(Ответить) (Parent) (Thread)
[User Picture]From: alogic
2010-03-28 17:08 none (UTC)

Re: привет!

В последнюю субботу месяца. Анонсы делаются на сайте foss-fest.com и в скромной рассылке OdLUG.
(Ответить) (Parent) (Thread)
From: ro-che.info
2010-03-28 14:06 none (UTC)

Re: привет!

Да, если я правильно помню, у Жени и Юры было по 7 правильных ответов.
(Ответить) (Parent) (Thread)
[User Picture]From: alogic
2010-03-28 18:09 none (UTC)

правильные ответы

Что-то уж слишком мало. По-моему тогда было сказано, что до конца ещё 3 вопроса есть, чтобы определить победителя. Впрочем, я слишком сильно переживал про очередной вопрос, чтоб замечать:)
(Ответить) (Parent) (Thread)
[User Picture]From: daily_bo
2010-03-28 12:34 none (UTC)
А вы часом не на Базарной встречались?
(Ответить) (Thread)
[User Picture]From: alogic
2010-03-28 13:07 none (UTC)
Да! Неужели и ты там была?
(Ответить) (Parent) (Thread)
[User Picture]From: daily_bo
2010-03-28 14:07 none (UTC)
Да, мы в мафию рядом играли ;)
(Ответить) (Parent) (Thread)
[User Picture]From: alogic
2010-03-28 17:09 none (UTC)
А когда ты пришла?
(Ответить) (Parent) (Thread)
[User Picture]From: daily_bo
2010-03-28 17:27 none (UTC)
Ближе к восьми вечера. Когда ваши ребята уходили мы еще предложили с нами поиграть, но они отказались,ссылаясь на усталость.
(Ответить) (Parent) (Thread)
[User Picture]From: alogic
2010-03-28 17:49 none (UTC)
На 20 минут разминулись. На дебаты по пятницам ты ходишь?
(Ответить) (Parent) (Thread)
[User Picture]From: daily_bo
2010-03-28 20:18 none (UTC)
Про дебаты краем уха слышала, но особо не вникала. Интересно?
(Ответить) (Parent) (Thread)
[User Picture]From: alogic
2010-03-28 23:45 none (UTC)
Я когда-то видел дебаты, как в американских судебных фильмах между прокурором и адвокатом. Думаю тут что-то похожее, но ни разу не видел. Полезное упражнение для публичных выступлений.
(Ответить) (Parent) (Thread)