Я пытаюсь изменить скрипт, который работает для другого приложения. Я мог бы начать все сначала, но я хотел бы узнать, как это сделать. Вот некоторые массивы, которые я устанавливаю вручную вместо использования ввода пользователя или входного файла:
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, чтобы свести файл к одной переменной.
Спасибо.