Frage

Wir brauchen eine Legacy-Anwendung zu unterstützen, die eine Unix und Win32-Port zur Verfügung stellt. Leider später im Spiel, wurde nur in ksh-Skripte für die Unix-Portierung vieler Glue-Code geschrieben und die Win32-Port hat Parität verloren. Ich habe versucht, es wieder zu beleben, und ich habe einige KSH-for-Windows-Lösungen versucht (eine native Version von Zsh verwendet in der Vergangenheit an die Arbeit), aber nichts scheint richtig 7 unter Windows zu arbeiten: Cygwin weigert sich, den Einsatz Win32 und Unix-Stil Wege, so brechen einige gewundene Skripte. Gleiche Situation für SUA / SFU. UWin funktioniert nicht auf Windows 7. Die älteren nativen Ports ich Gebrauch verwendet (WinZsh) auch nicht mehr arbeiten unter 7.

Also, ich bin in der Notwendigkeit eines Korn-Shell-Arbeit-alike, die unter Win 7 funktionieren werden (64 Bit wären genial, aber ich habe die Hoffnung verloren) und die mit beiden cmd.exe-Stil Pfaden arbeiten ( c: / path / to / app) und Standard-Unix Pfade (/ path / to / APP). Irgendwelche Hinweise?

War es hilfreich?

Lösung

Cygwin tut Unterstützung C: / path / to / app Stil Wege, auch wenn es über sie beschweren mag. (Einstellung CYGWIN = nodosfilewarning wird es verschlossen). Auch Pfade mit umgekehrten Schrägstriche werden unterstützt, aber sie brauchen die Schale von der Interpretation, sie zu stoppen angemessen zu zitieren.

pdksh, die "Public Domain Korn Shell" kann durch Cygwin setup.exe installiert werden.

Andere Tipps

Cygwin glücklicherweise ersetzt pdksh (tot seit 1999) mit mksh. Allerdings mksh wird * nicht * Unterstützung nicht-POSIX-Pfade, wie es ist in erster Linie ein BSD-Unix-Shell und eine seiner Stärken arbeitet das gleiche über alle Plattformen hinweg.

That being said, gibt es dos2unixpath und unix2dospath (IIRC) in Interix. Vielleicht können Sie sie verwenden.

So etwas könnte dies sogar Arbeit:

function dos2unixpath {
    local _x=$1
    [[ $_x = [A-Za-z]:[\\/]* ]] && _x=/dev/fs/${_x::1}/${_x:3}
    print -r -- "${_x//\\//}"
}

Dieser wandelt x:\foo\bar zu /dev/fs/x/foo/bar, ..\bla zu ../bla und Blätter der Rest allein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top