我们需要支持提供 Unix 和 Win32 端口的旧版应用程序。不幸的是,在游戏后期,很多粘合代码都是用 ksh 脚本编写的,仅适用于 unix 端口,而 Win32 端口已经失去了奇偶校验。我一直在尝试恢复它,并且一直在尝试一些 ksh-for-windows 解决方案(过去曾使用过 Zsh 的本机构建),但在 Windows 7 下似乎没有任何东西可以正常工作:Cygwin 拒绝使用Win32 和 unix 风格的路径,因此一些复杂的脚本会中断。 SUA/SFU 的情况相同。 UWin 无法在 Windows 7 上运行。我曾经使用的旧本机端口 (WinZsh) 在 7 下也不再运行。
所以,我需要一个类似 Korn-shell 的工作,它可以在 Win 7 下工作(64 位很棒,但我已经失去了希望),并且可以与 cmd.exe 样式路径(c:/ path/to/app) 和标准 Unix 路径 (/path/to/app)。有什么线索吗?
幸运的是,Cygwin 用 mksh 取代了 pdksh(自 1999 年以来已停止使用)。然而,MKSHwill*不*支持非 POSIX 路径,因为它主要是 BSD Unix shell,其优点之一是在所有平台上都可以相同地工作。
话虽这么说,有dos2unixpath
and unix2dospath
(IIRC) 在 Interix 中。也许你可以使用它们。
像这样的事情甚至可能有效:
function dos2unixpath {
local _x=$1
[[ $_x = [A-Za-z]:[\\/]* ]] && _x=/dev/fs/${_x::1}/${_x:3}
print -r -- "${_x//\\//}"
}
这转换x:\foo\bar
to /dev/fs/x/foo/bar
, ..\bla
to ../bla
,并留下其余部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)