Я пытаюсь выяснить, есть ли более компактный способ написания кода tcsh следующего формата, в идеале все еще на tcsh.Я потратил некоторое время на поиск, используя разные ключевые слова, но не смог найти ничего полезного.
По сути, фрагмент кода просто повторяет последовательность чисел, а затем, если это зацикленное значение находится в наборе чисел, присваиваяпеременная.Для простоты я сделал списки чисел, которые $ VAR сравнивает с относительно короткими, а число сравнений встречается мало, но реальная проблема - удвоение, размер - оба аспекта.
foreach VAR (`seq 1 24`)
if ($VAR == 1 || $VAR == 2 || $VAR == 3 || $VAR == 4) then
set cat = small
else if ($VAR == 5 || $VAR == 6 || $VAR == 7 || $VAR == 8) then
set cat = medium
else
set cat = large
endif
end
Полагаю, я больше думал о Python, где можно просто сказать «если х в [...]» и т. Д., А не сравнивать $ VAR с каждым числом по отдельности, какэто случай выше.Я рассмотрел следующий тип установки, но в итоге получается больше строк:
foreach VAR (`seq 1 24`)
foreach C (1 2 3 4)
if ($C == $VAR) then
set cat = small
endif
end
...
end
Если предоставленный код такой же простой, как в tcsh, есть ли более лаконичный способ, скажем,Баш?Спасибо за любые советы.