C shell 未定义变量的问题

C shell issue with undefined variable

我正在学习使用 tcsh shell 编写一些 shell 脚本。 我的程序应该为 2 个第一个参数的范围计算乘法 table。如果第一个 arg 大于第二个,它应该从大到小打印它。但是,如果我给他的第一个参数大于第二个参数,他就会正常工作,而不是这样。但是当我给他第一个更小的 arg 时,我有:"d: Undefined variable" 错误。

if ( $argv[1] > $argv[2] ) then
while ($argv[1] >= $argv[2])
    foreach y ( 1 2 3 4 5 6 7 8 9 )
        @ d = ( $argv[1] * $y )
        if ( $d < 10 )then
            echo -n " $d "
        else
            echo -n "$d "
        endif
    end
    echo "\n"
    @ argv[1] -= 1
end
exit 0
else
while ($argv[1] <= $argv[2])
    foreach y ( 1 2 3 4 5 6 7 8 9 )
        @ c = ( $argv[1] * $y )
        if ( $c < 10 )then
            echo -n " $c "
        else
            echo -n "$c "
        endif
    end
    echo "\n"
    @ argv[1] += 1
end
exit 0
endif  

如果我切换 if 和 else(首先将部分负责 arg1 小于 arg2)对于小于 arg2 的 arg1 它工作正常,但在相反的情况下没有 "c: Undefined variable" 错误。

你能告诉我我错过了什么吗?

尝试通过set命令声明变量

set var = value ;