[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: