3
人我討厭eval
評估和演示瘋狂......在KSH
我堅持這個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
var可以包含多行(\n
's)。這可能是重要的,因爲其中一項嘗試設法正確地用第一行代替變量的內容:/
謝謝。