Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
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").
гавнецо. на шелле когда начинаешь писать, остановится сложно. сам таким страдаю.
да и шеллы тоже без всяких пайпов способны такие замены делать - `${VAR//pattern/string}`. (выглядеть будет еще говнее - но зато по крайней мере в пустую не будет процессы туды сюды создавать, электричество зря тратить.)
Забавно, что этот код у меня выскочил в результате рефакторинга :). А так, я, конечно, заменю tr и sed на встроенные операции, но всё остальное, похоже, будет жить ещё долго... =\
да и шеллы тоже без всяких пайпов способны такие замены делать - `${VAR//pattern/string}`. (выглядеть будет еще говнее - но зато по крайней мере в пустую не будет процессы туды сюды создавать, электричество зря тратить.)
(кучу лишних проекто-специфичных обрезаний я обрезал - реальный скрипт где-то втрое длинее.)