Ich habe ein Perl-Skript, das ein paar Argumente braucht. Es wird so ausgeführt:
%Vor%Ich habe die folgende Zeile im Skript:
%Vor% Dabei wird $logfilePath
von der Befehlszeile übernommen.
Wenn es einen Pfad gibt, / path / to / logfile /, aber kein logfile.log, erstellt er es einfach (was die gewünschte Aktion ist). Es kann jedoch nicht gestartet werden, wenn es keinen solchen Pfad gibt. Wie kann ich das Skript veranlassen, den Pfad für die Logdatei zu erstellen, wenn es vor dem Ausführen des Skripts nicht existiert?
Angenommen, Sie haben den Pfad zur Logdatei (die den Dateinamen enthalten kann: logfile.log
) in der Variablen $full_path
. Anschließend können Sie bei Bedarf die entsprechende Verzeichnisstruktur erstellen:
Nun enthält $full_path
den vollständigen Pfad zur logfile.log
-Datei. Der Verzeichnisbaum im Pfad wurde ebenfalls erstellt.
Update: Wie Dave Cross darauf hingewiesen hat, erstellt mkdir
nur ein einziges Verzeichnis. Dies funktioniert nicht, wenn Sie mehrere Ebenen gleichzeitig erstellen möchten.
Verwenden Sie Perls mkdir
Befehl. Beispiel:
Die Verwendung von Perls eigener Funktion ist besser als die Ausführung eines Unix-Befehls.
Bearbeiten: Natürlich sollten Sie auch prüfen, ob das Verzeichnis zuerst existiert. Verwenden Sie -e
, um zu prüfen, ob etwas existiert. Hinzufügen zu dem obigen Code: