- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
parsemask() {
echo -n "$@" | tr -d "\n" | sed -e "s#%%#\n#g" | sed -e "s#%C#$CLUSTER#g" | sed -e "s#%R#$XENXROOT#g" | tr "\n" "%";
return;
}
for pvar in STATUSPATH LOGPATH DRBDLOGPATH XENXPREFIX CLUSTERSPATH; do
eval R${pvar}="`parsemask "$(eval echo \\\$${pvar})"`"
done
Реализация разыменовки и замены в цикле, для того, чтобы для каждой переменной (например LOGPATH="%R/var/log/xenx/%C.log") определилась соответствующая переменная с произведёнными подстановками (например RLOGPATH="/usr/local/xenx/var/log/xenx/stormrage.log").
Dummy00001 14.02.2011 23:35 # +3
да и шеллы тоже без всяких пайпов способны такие замены делать - `${VAR//pattern/string}`. (выглядеть будет еще говнее - но зато по крайней мере в пустую не будет процессы туды сюды создавать, электричество зря тратить.)
xaionaro 15.02.2011 01:00 # 0
Dummy00001 15.02.2011 01:41 # 0
(кучу лишних проекто-специфичных обрезаний я обрезал - реальный скрипт где-то втрое длинее.)