[sisyphus] etcnet: профили с бриджом и без

Yuriy Kashirin yura на emict.com
Ср Мар 28 22:18:30 MSD 2007


On Среда 28 марта 2007, Eugene Prokopiev wrote:
> > Stopping bridge: /etc/net/scripts/shutdown-bri: line 7: HOST:
>
> line 7 выглядит так:
> : ${HOST:?HOST must be set for $NAME}
>
> Моих познаний в программировании на shell недостаточно, чтобы
> понять смысл этой строчки. Что она делает? Насколько она
> необходима?

Она делает ровно то, что вы наблюдвете. Первое двоеточие - просто 
команда, которая ничего не делает. А ее аргумент раскрывается так:

man bash

      ${параметр:?слово}
              Выдавать ошибку если параметр не установлен или
              имеет пустое значение.
              Если параметр имеет пустое значение или не
              установлен,  указанное  слово  (или стандартное
              сообщение, если слово не задано) выдается в
              стандартный поток ошибок, и командный интерпретатор,
              если он не интерактивный, завершает работу.
              В противном случае, подставляется значение параметра.


То есть если $HOST установлен в непустое значение, то ничего не 
поисходит, скрипт работает дальше, а иначе завершается с ошибкой и 
сообщением "HOST must be set for $NAME"

-- 
 Best regards
 Yuriy Kashirin


Подробная информация о списке рассылки Sisyphus