【问题标题】:Array in loop in TCSH shellTCSH shell 中的循环数组
【发布时间】:2021-07-10 14:20:31
【问题描述】:

在 TCSH 中:

我给出了两个包含不同文件的列表。然后我必须将这些列表作为数组元素传递,然后循环应该执行两次,因为只有 2 个列表。但在这种情况下,循环执行的时间与两个列表中的文件一样多。

set list_one = (one.s two.s three.s)
set list_two = (four.s five.s)

set arr=($list_one $list_two)

foreach i ($arr)
cat $i > $output.s

end

这是我的代码示例,根据我的说法,循环应该只执行两次(对于 list_one 和 list_two),但它执行了五次(对于一个.s 二.s 三.s 四.s 五.s)

如果我这样使用(如下所述),循环执行两次。但是在 cat 命令中,我收到一个错误,即 No such file or directory 对于我传入数组的每个列表。

set arr=(list_one list_two)

foreach i ($arr)
cat $i > $output.s
end

【问题讨论】:

标签: arrays list shell loops tcsh


【解决方案1】:

您的第二种方法走在正确的轨道上,只是缺少一个变量替换级别。

set arr=(list_one list_two)
foreach i ($arr)
    eval cat \$$i >$output.s
end

【讨论】:

    猜你喜欢
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多