shell script 變數問題 - Linux

Table of Contents

想請教一下為何下列第二和第三種方法會顯示錯誤訊息

1.
TMP1=/root/zh/pp/pg1.tmp
TMP2=/root/zh/pp/pg2.tmp

2.
q=1
while [ "$q" -le "4" ];do
TMP${q}=/root/zh/pp/pg${q}.tmp
q=`expr $q + 1`
done

3.
for q in 1 2 3 4
do
TMP$q=/root/zh/pp/pg$q.tmp
done

第二和第三錯誤訊息都是
+ TMP1=/root/zh/pp/pg.tmp
pp.sh: line 4: TMP1=/root/zh/pp/pg1.tmp: No such file or directory
+ TMP2=/root/zh/pp/pg2.tmp
pp.sh: line 4: TMP2=/root/zh/pp/pg2.tmp: No such file or directory

--

All Comments

Xanthe avatarXanthe2014-01-26
加個 env ?
Tom avatarTom2014-01-29
" "
Hedda avatarHedda2014-01-30
應該是補 eval, ex: eval TMP${q}=/root/zh/pp/pg${q}.tmp