Вопрос

Нам нужно поддержать устаревшее приложение, которое предоставляет Unix и порт Win32. К сожалению, позже в игре много клеевого кода было написано в KSH Scripts только для порта UNIX, а порт Win32 потерял четность. Я пытался его возродить, и я пробую несколько решений KSH-для Windows (родная сборка ZSH, используемая для работы в прошлом), но ничто не работает должным образом под Windows 7: Cygwin отказывается использовать Как Win32, так и Unix-стильные пути, поэтому некоторые извилистые скрипты нарушаются. Та же ситуация для SUA / SFU. UWIN не работает на Windows 7. Старые родные порты, которые я использовал для использования (Winzsh), также больше не работает до 7 лет.

Итак, я нуждаюсь в работе Korn-Shell, который будет работать под Win 7 (64 бита будет потрясающе, но я потерял надежду) и который может работать с путями Cmd.exe-стиля (C: / Путь / к / приложение) и стандартные пути UNIX (/ путь / к / приложение). Любые подсказки?

Это было полезно?

Решение

Cygwin поддерживает C: / Путь / к / к / приложения Пути стиля, хотя он любит жаловаться на них. (Установка Cygwin = Nodosfilewarning задержит его). Даже пути с обратной косами поддерживаются, но им нужна соответствующая цитата, чтобы остановить оболочку от интерпретации их.

PDKSH, «Public Domain Korn Shell», можно установить через setup.exe cygwin.

Другие советы

Cygwin, к счастью, заменил pdksh (погибших с 1999 года) с МКШ. Тем не менее, МКШ. буду * Не * Поддержка несовремовых путей, так как в основном это оболочка BSD Unix, а одна из его сильных сторон работает совпадает с всеми такими же на всех платформах.

Что говорится, есть dos2unixpath а также unix2dospath (IIRC) в Интернете. Может быть, вы можете использовать их.

Что-то вроде этого может даже работать:

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

Это преобразует x:\foo\bar к /dev/fs/x/foo/bar, ..\bla к ../bla, и покидает остальные в одиночку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top