tcsh数组变量替换

时间:2018-05-10 14:18:51

标签: arrays variables tcsh

我试图修改适用于其他应用程序的脚本。我可以重新开始,但我想学习如何做到这一点。以下是我手动设置的一些数组,而不是使用用户输入或输入文件:

set mbeg= (1 2 3 4)
set mmid= (5 6 7 8)
set mend= (9 0 0 0)

我真正想做的是遍历$time$case并让它返回循环变量的数组值。

foreach time (beg mid end)
   foreach case (1 2 3 4)
      echo \${m$time}[$case]

对于此示例,我希望它返回: 1 2 3 4 5 6 7 8 9 0 0 0 0

我可以让echo \${m$time}返回" mbeg"但我无法弄清楚如何在那里获得阵列计数器。这是否可以做到简单,或者我应该改变策略?其他策略包括数组名称的强力输入和if / else语句,以仅选择与$time变量对应的数组。

foreach time (beg mid end)
foreach j ( 1 2 3 4 )
   if ($time == beg) then
      echo $mbeg[$j]
   elseif ( $time == mid ) then
      echo $mmid[$j]
   else
      echo $mend[$j]

我也可以尝试从输入文件中读取。到目前为止,我已经使用grep和sed将文件缩减为单个变量。 感谢。

0 个答案:

没有答案