Ich schreibe ein Bash-Skript, das zwei Verzeichnisse vergleicht, bin mir aber nicht sicher, wie ich die Bedingungen überprüfen soll
Wenn der Benutzer beispielsweise 1 Argument anstelle von 2 eingibt (wir benötigen 2, da wir zwei Verzeichnisse vergleichen), sollte ein Fehler ausgegeben werden. Wenn beide Argumente gültig sind, vergleichen Sie die Verzeichnisse und geben Sie sie in eine Datei aus.
Antworten:
Argumente verarbeiten
Die Verarbeitung von Argumenten, die über die Befehlszeile eines Skripts übergeben werden, ist wie folgt. Angenommen, wir hätten dieses Skript:
Führen Sie jetzt ohne Argumente aus:
Mit 1 Argument:
Mit 2 Argumenten:
Überprüfen Sie die Argumente
Sie können dann überprüfen, ob die Argumente 1 und 2 gültige Verzeichnisse sind oder nicht, und dann aussteigen oder nach Bedarf fortfahren. Wir führen also zwei Überprüfungen ein, um festzustellen, ob die beiden Argumente Verzeichnisse sind oder nicht. Wenn nicht, beenden Sie das Programm.
Beispiel
Angenommen, wir haben diese Verzeichnisse.
Wenn wir etwas anderes als 2 Verzeichnisse erhalten, wird das Skript einfach beendet.
Wenn wir 2 Verzeichnisse haben:
Wenn wir mehr als 2 Argumente erhalten:
Den Vergleich der beiden Verzeichnisse überlasse ich Ihnen. Um Bash zu lernen, verweise ich Sie auf den unten stehenden Link, um ein kostenloses Online-Buch über Bash zu erhalten.
Verweise
quelle
Die Anzahl der Argumente ist im Parameter enthalten
$#
.Wenn Sie erzwingen möchten, dass die Argumente beide Verzeichnisse sind (im Gegensatz zu anderen Dateitypen), testen Sie sie mit
-d
.Das Dienstprogramm
diff
vergleicht zwei Dateien. Mit dieser Option-r
werden Verzeichnisse rekursiv verglichen.quelle