我正在学习一些使用tcsh shell的shell脚本。 我的程序应该计算2个第一个参数范围的乘法表。如果第一个参数比第二参数大,它应该从大到小打印出来。但是,如果我给他的第一个参数比第二个更大,那么他会正确地工作。但是,当我给他第一个参数较小时,我有:“d:未定义的变量”错误。未定义变量的C shell问题
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
如果我切换如果和其他人(第一负责ARG1 ARG2相比较小部分),它工作正常比ARG2 ARG1小,但不是在相反的情况与“C:未定义变量”错误。
你能告诉我我错过了什么吗?
改变你的“她 - 砰”行'#!/...../ tcsh的-vx'所以你可以看到调试/跟踪。然后,您可能会看到哪条线路导致问题。 (当然,把正确的路径替换为'/.../')。祝你好运。 – shellter
非常感谢!这真是一个愚蠢的错误:在此之前我忘记了空间,第二个循环中的“else”被带到了第一个循环。 – Shrike
https://www-uxsup.csx.cam.ac.uk/misc/csh.html – Kaz