戒贪、戒嗔、戒痴
分类: LINUX
2009-10-27 09:58:29
eval typeset nsteps=\${#$step_array
你可以自己這樣測試:
[Copy to clipboard] [ - ]
CODE:
$ eval echo typeset nsteps=\${#$step_array}
typeset nsteps=0
$ echo typeset nsteps=\${#$step_array}
typeset nsteps=${#}
若你還是看不懂的話,可以另外解釋。比方你宣告 myname=peter,然後你要查看 myname 變量內容就是使用:
[Copy to clipboard] [ - ]
CODE:
echo $myname
或是
[Copy to clipboard] [ - ]
CODE:
echo ${myname}
若你另外宣告 data=myname。
[Copy to clipboard] [ - ]
CODE:
$ echo $myname
peter
若是希望可以把 data 變量的內容 "myname" 當作一個新變量提供取出 peter 內容的話,一般概念:
[Copy to clipboard] [ - ]
CODE:
${data} --> myname , ${myname} --> peter
所以語法上要查看內容一般可能會使用:
[Copy to clipboard] [ - ]
CODE:
echo $${data}
只是這樣語法是錯誤的,因為無法取出 ${data} 內容後再當作變量取值。
[Copy to clipboard] [ - ]
CODE:
$ echo $${data}
14054{data}
那可能想到方式是這樣使用:
[Copy to clipboard] [ - ]
CODE:
echo \$${data}
但是這變成結果如下:
[Copy to clipboard] [ - ]
CODE:
$ echo \$${data}
$myname
那怎麼把 $myname 展開執行呢 ? 那就是使用 eval 來解決該問題:
[Copy to clipboard] [ - ]
CODE:
eval echo \$${data}
peter