Ich möchte eine Datei verwenden, um die aktuelle Versionsnummer für eine Kundensoftware zu speichern, die von einem Start-Skript verwendet werden kann, um die Binärdatei im richtigen Verzeichnis auszuführen.Was ist der beste Weg, um eine Versionszeichenfolge aus einer Datei zu extrahieren?
Zum Beispiel, wenn das Arbeitsverzeichnis wie folgt aussieht:
.
..
1.2.1
1.2.2
1.3.0
run.sh
current_version
Und current_version enthält:
1.2.2
I run.sh
in 1.2.2 absteigen wollen, und starten Sie das Programm foo
.
Die aktuelle Lösung ist dies:
#!/bin/sh
version = `cat current_version`
cd $version
./foo
Es funktioniert, ist aber nicht sehr robust. Es prüft nicht auf Datei Existenz, kann nicht mit mehreren Zeilen, führende Leerzeichen, kommentierte Zeilen, leere Dateien, etc. umgehen.
Was ist die überlebensfähigste Möglichkeit, dies entweder mit einer Shell oder Perl-Skript zu tun?
Ich möchte Links zu vermeiden, weil Ich möchte bestehende Instanzen des Programms nicht stören, die das Ändern ihres Arbeitsverzeichnisses ablehnen könnten. – Frosty