我正在开发应用程序,它同时工作于unix和windows环境。
我使用samba将unix驱动器映射到窗口上。
关于cygwin:
ls -l /remote
/remote -> //samba1当我尝试执行以下命令时:
myExecutable /remote/fileloc/filename.txt 它在Unix中运行良好,但在打开文件时窗口出现故障。
如果我在windows上发出以下命令:
myExecutable //samba1/fileloc/filename.txt效果很好。
有任何方式可以访问相同的路径(/remote/fileloc/filename.txt)在unix和窗口上?
我只能在窗户里换衣服。Unix驱动路径我无法更改。
发布于 2013-12-04 10:23:26
最简单的解决方案是使用相对路径名。例如,
myExecutable ../fileloc/filename.txt在这两种系统上都是一样的。当然,这种语法要求调用脚本的当前目录(包含上面一行的脚本)与文件名位于同一个Windows驱动器号上。如果没有,我只会采用解决方案2:
更常见的解决方案是向脚本中添加一些条件代码,以检查您所在的主机或系统,并相应地设置一个变量。就像这样:
if [ `hostname` == mylinuxbox ]
then
BASEDIR=/remote
else
BASEDIR=//samba
fi
myExecutable "$BASEDIR"/fileloc/filename.txthttps://unix.stackexchange.com/questions/103636
复制相似问题