Re: Динамически включать-выключать CPU
2011/9/10 Artem Chuprina <ran@ran.pp.ru>:
>> > if printf "%s" "$1" | grep '^[1-9][0-9]*$' >/dev/null 2>&1
>> > then :
>> > else exit 1
>> > fi
>>
>> Спасибо! К сожалению, расшифовать это мне не удалось. Каким образом
>> оно упадёт, если в $1 _не только_ цифры?
>
> Если там не только цифры (причем начинающиеся не с 0) или даже пустая строка,
> то регулярное выражение не удовлетворится, и grep завершится с кодом 1. А
> поскольку он последний, то это будет код завершения всего pipeline, что после
> if. Отсюда - ветка else, где exit 1.
>
> Или тебе чего расшифровать? Регулярное выражение?
Оно понятно что это не здесь...
Ну не понимаю я регулярные выражения :( Впрочем, я вообще предпочитаю
_читаемые_ языки. Из программистов в техписатели ушёл, когда C++ всех
победил (Python тогда ещё не было, а Дельфи уже уходили).
Однако спасибо - в данном случае просто заюзаем :)
> А вообще для программирования на шелле существует довольно надежный способ
> ломаться - надо включить опцию -e, например, сказав не
>
> #!/bin/sh
>
> а
>
> #!/bin/sh -e
>
> Тогда любая команда, завершившаяся неудачно (кроме команд, стоящих в условии
> if или перед ||) будет приводить к тому, что в этом месте скрипт и завершится.
Это да, но когда то, что требует в Питоне int(), в шелле требует
regexp, а иначе даже не упадёт нормально, мне становится непросто :)
> Intel - тоже Сильмарилл. Только сделанный не так...
Представил себе двухядерный Сильмарилл.
--
Yours, Mikhail Ramendik
Unless explicitly stated, all opinions in my mail are my own and do
not reflect the views of any organization
Reply to: