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 ;
我正在学习使用 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 ;