Ich habe noch nie in bash programmiert ... aber ich versuche, ein Problem für einen Fehler in einem Spiel (codingame.com) zu lösen
Ich habe den folgenden Code:
%Vor%Und dieser Fehler:
%Vor%Ich möchte benachbarte Werte meines Arrays vergleichen und den minimalen Unterschied zwischen ihnen speichern ... aber ich kann mir nicht vorstellen, wie ich eine If-Anweisung in bash machen soll
Jeder Befehl muss ordnungsgemäß beendet werden, entweder durch einen Zeilenumbruch oder ein Semikolon. In diesem Fall müssen Sie die Zuordnung von result
vom Schlüsselwort fi
trennen. Versuchen Sie ein Semikolon hinzuzufügen;
Außerdem müssen Sie lt
anstatt <
verwenden, da <
ein Umleitungsoperator ist. (Es sei denn, Sie möchten einen Befehl mit dem Namen $tmp
mit einer Eingabe aus einer Datei namens $result
ausführen)
Auf Ihr if
muss ein Befehl fi
folgen, aber Sie haben keinen solchen Befehl. Sie haben eine fi
in Ihrem Code, aber es ist in der Mitte eines anderen Befehls, so dass es nicht mehr vervollständigt die if
dann die fi
in echo fi
würde. Wenn Sie Linien zusammenführen möchten, müssen Sie ein Semikolon verwenden, um die Befehle zu trennen.
Also zusammenbrechen
%Vor%würdest du
verwenden %Vor% Ausnahme: Auf do
und then
kann ein Befehl folgen, so dass Sie nach dem Zusammenführen in der nächsten Zeile kein Semikolon benötigen.
Beachten Sie, dass Sie Ihre Befehle nicht mit ;
beenden müssen? ;
wird nur zwischen Befehlen benötigt.
Innerhalb von test
( []
) wird -lt
zum Vergleichen von Zahlen verwendet.
Tags und Links bash if-statement