Question

Nous devons soutenir une application héritée qui fournit un Unix et un port Win32. Malheureusement, plus tard dans le jeu, beaucoup de code de la colle a été écrit dans les scripts ksh pour le port unix seulement, et le port Win32 a perdu la parité. J'ai essayé de le faire revivre, et je l'ai essayé quelques solutions pour ksh-Windows (une version native de zsh travaillait dans le passé), mais rien ne semble fonctionner correctement sous Windows 7: Cygwin refuse d'utiliser Win32 et chemins de style unix, de sorte que certains scripts alambiquées briser. Même situation pour SUA / SFU. UWin ne fonctionne pas sur Windows 7. Les anciens ports natifs je l'habitude d'utiliser (WinZsh) ne fonctionnent plus aussi moins de 7 ans.

Alors, je suis dans le besoin d'un Korn-shell travail-alike qui fonctionnera sous Windows 7 (64 bits serait génial, mais je l'ai perdu espoir) et qui peut travailler avec les deux chemins de style cmd.exe ( c: chemin / vers / app /) et des chemins Unix standard (/ chemin / vers / app). Des indices?

Était-ce utile?

La solution

Cygwin pris en charge par C: chemins de style chemin / / à / app, même si elle aime à se plaindre à leur sujet. (Réglage CYGWIN = nodosfilewarning s'enfermera). Même avec les chemins antislashs sont pris en charge, mais ils ont besoin d'arrêter appropriés citant le shell de les interpréter.

pdksh, le "domaine public Korn Shell", peut être installé dans le setup.exe de Cygwin.

Autres conseils

Cygwin heureusement remplacé pdksh (mort depuis 1999) avec mksh. Cependant, mksh * pas * soutien chemins non POSIX, car il est avant tout un shell Unix BSD, et l'un de ses points forts travaille même sur toutes les plateformes.

Cela étant dit, il y a dos2unixpath et unix2dospath (IIRC) dans Interix. Peut-être que vous pouvez les utiliser.

Quelque chose comme ça pourrait même travail:

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

Il convertit x:\foo\bar à /dev/fs/x/foo/bar, ..\bla à ../bla, et laisse le reste seul.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top