Ich lerne etwas Shell-Skripting mit der tcsh-Shell. Mein Programm sollte die Multiplikationstabelle für einen Bereich von 2 ersten Argumenten berechnen. Wenn das erste Argument größer als das zweite ist, sollte es von größer nach kleiner gedruckt werden. Aber statt dessen arbeitet er korrekt, wenn ich ihm den ersten Arg als den zweiten gebe. Aber während ich ihm das erste Argument kleiner gebe, habe ich den Fehler: "d: Undefinierte Variable".C-Shell-Problem mit undefinierter 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
Wenn ich wechsle, wenn und sonst (wird erster Teil verantwortlich für arg1 kleiner als arg2 sein) Es funktioniert gut für arg1 kleiner als arg2, aber nicht in der entgegengesetzten Situation mit „c: Nicht definiert Variable“ Fehler.
Können Sie mir bitte sagen, was fehlt mir?
Änderung Ihrer "she-bang" Linie '#! /.../ Tcsh -vx' zu erklären, so dass Sie die Debug/Spur zu sehen. Dann können Sie möglicherweise sehen, welche Zeile das Problem verursacht. (setze den richtigen Pfad zu statt '/.../' natürlich). Viel Glück. – shellter
Vielen Dank! Es war wirklich ein dummer Fehler: Ich habe vorher den Platz vergessen und "else" von der zweiten Schleife wurde in die erste Schleife gebracht. – Shrike
https://www-uxsup.csx.cam.ac.uk/misc/csh.html – Kaz