C shell问题与未定义的变量

时间:2016-10-15 13:17:59

标签: shell tcsh

我正在使用tcsh shell学习一些shell脚本。 我的程序应计算2个第一个参数范围的乘法表。如果第一个arg大于秒,它应该从大到小打印。但是如果我给他的第一个arg大于第二个,那么他的工作正确。但是,虽然我给他的第一个arg更小,但我有:" d:未定义的变量"错误。

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,但与#34; c:未定义变量&#34;相反的情况不适用错误。

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

1 个答案:

答案 0 :(得分:0)

尝试通过set命令声明变量

set var = value ;