csh脚本中的多个单词列表foreach循环

mr *_*dus 3 shell csh

我有一个Cshell脚本,我正在修改,以具有相关的输入和输出位置.功能都发生在foreach循环中,如下所示:

set INPUT_LOCATION_LIST = "loc1 loc2 loc3 loc4"
foreach location ($INPUT_LOCATION_LIST)
#***Do some stuff ***
end
Run Code Online (Sandbox Code Playgroud)

我希望有一个输出列表,其值不同于输入列表,但是每次迭代都会遍历foreach循环.foreach的人只是

foreach name (wordlist)
Run Code Online (Sandbox Code Playgroud)

作为定义.所以只处理一个.我目前处理它的想法是让wordlist包含输入和输出位置,然后在脚本中解析它:

set INPUT_LOCATION_LIST = "loc1;out1 loc2;out2 loc3;out3 loc4;out4"
Run Code Online (Sandbox Code Playgroud)

所以我想知道是否有人有更好的方法来做到这一点.

Pau*_*ce. 5

您可以使用foreach和通过另一个列表迭代一个列表,通过像处理数组一样处理并使用shift:

set INPUT_LOCATION_LIST = "loc1 loc2 loc3 loc4"
set OUT_LIST = (out1 out2 out3 out4)

foreach location ($INPUT_LOCATION_LIST)
    do_something $location $OUT_LIST[1]
    shift OUT_LIST
end
Run Code Online (Sandbox Code Playgroud)