Человек, которого я ненавижу eval
...
Я застрял с этим ksh, и он имеет , чтобы быть таким.
Есть эта функциянужно, которое получит имя переменной и значение.Будет делать некоторые вещи с содержимым этой переменной и значением, а затем придется обновить полученную переменную.Сортировка:
REPORT="a text where TADA is wrong.."
setOutputReport REPORT "this"
echo $REPORT
a text where this is wrong..
Там, где функция будет выглядеть примерно так:
function setOutputReport {
eval local currentReport=\$$1
local reportVar=$1
local varValue=$2
newReport=$(echo "$currentReport"|sed -e 's/TADA/$varValue')
# here be dragons
eval "$reportVar=\"$newReport\""
}
У меня раньше была такая головная боль, мне никогда не удавалось правильно получить этот eval.Важно, что переменная REPORT
может содержать несколько строк (\n
).Это может быть важно, поскольку одной из попыток удалось правильно заменить содержимое переменной только первой строкой: /
спасибо.