我正在學習一些使用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