C shell 数字相加求和类型问题

编写一个名为 "loopy_ifs.csh "的C shell脚本。该脚本提示用户至少输入三个要加的数字。然后,该脚本回显用户输入的数字和数字的总数。你将需要循环和if(s)来完成这个任务。你的脚本还必须做适当的错误检查;例如,用户输入的数字少于三个或输入了一个字母。需要在一个C shell中来编写脚本。

下面是示例脚本输出:
这个C Shell脚本将把用户输入的任何数量的数字加起来,但不能少于三个。
输入至少三个空格分隔的整数来添加:9 6 //我特意只输入了两个整数
最小的输入数量是三个。再试一次:A // 我错误的输入了字母A
输入的内容无效。再试一次:3 6 9 45 54 96 2 7 // 我输入了一个可以接受的数额
给出的8个整数的总和是222 // 该脚本正确的报告了数字的个数以及总和

代码和详细注释如下,望采纳,有问题可以再沟通

#!/usr/bin/csh

echo "这个 C Shell 脚本将输入的数字相加,但您必须至少输入三个数字。"
echo -n "至少输入三个空格分隔的整数来添加: "
set numbers = $<

#错误检查: 确保用户输入了至少三个数字
if ( $#numbers < 3 ) then
    echo "最小输入量为三个。请重试:"
    set numbers = $<
    if ( $#numbers < 3 ) then
        echo "无效输入。退出脚本。"
        exit
    endif
endif

#错误检查: 确保用户只输入数字
foreach num ( $numbers )
    if ( $num !~ [0-9]* ) then
        echo "无效输入。请重试:"
        set numbers = $<
        #再次检查最小数字数量
        if ( $#numbers < 3 ) then
            echo "最小输入量为三个。请重试:"
            set numbers = $<
            if ( $#numbers < 3 ) then
                echo "无效输入。退出脚本。"
                exit
            endif
        endif
        #检查用户的所有输入是否都是数字
        foreach num ( $numbers )
            if ( $num !~ [0-9]* ) then
                echo "无效输入。退出脚本。"
                exit
            endif
        end
    endif
end

#现在可以确保输入有效了,我们可直接将数字相加
set total = 0
foreach num ( $numbers )
    @ total += $num
end

echo "给定的 $#numbers 个整数的和是 $total

有人写了,我就不嫌丑了

img