結果

結果

私はtcshに苦労しており、助けてくれてありがとう。

私が実行したとき:

set faceAttenRuns = (09 13)
set run = $faceAttenRuns[1]
echo $run

これにより、次のものが返されます。エコ09。途方もない。

しかし、私が実行したとき:

set runTypes    = (sceneLoc faceAtten faceNorm)
set run = $runTypes[2]Runs[1]

これにより、次のものが返されます。設定:一致しません。非常に良いではありません。

09 が変数に割り当てられるように $runTypes[2]Runs[1] が 09 を返すようにする方法走る

ありがとうございます!

ベストアンサー1

操作を実行するには中間変数を作成する必要があります。

set faceAttenRuns = ( 09 13 )
set runTypes = ( sceneLoc faceAtten faceNorm )
set varname = "$runTypes[2]Runs"
echo "set run = "\$"${varname}[1]:q" # this will show you what is going to be evaluated
eval "set run = "\$"${varname}[1]:q"
echo "result=<$run>"

結果

set run = $faceAttenRuns[1]:q
<09>

中間変数を使用しないバージョンは次のとおりです。

#!/bin/csh -f

set faceAttenRuns = ( 09 13 )
set runTypes = ( sceneLoc faceAtten faceNorm )

echo "set run = "\$"{${runTypes[2]}Runs[1]:q}"
eval "set run = "\$"{${runTypes[2]}Runs[1]:q}"

echo "result=<$run>"

おすすめ記事