结果

结果

我有一个 tcsh 难题,希望得到任何帮助。

当我跑步时:

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

这将返回:回声09。伟大的。

但是当我跑步时:

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

这将返回:设置:不匹配。不是很好。

如何使 $runTypes[2]Runs[1] 返回 09,以便可以将 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>"

相关内容