Bash on cygwin:没有这样的文件或目录

时间:2011-10-02 20:30:01

标签: bash cygwin

commonMongo=s:/programs/mongodb/
dbpath=$commonMongo"data/"
logFile=$commonMongo"log.txt"
mongoProg=s:/programs/mongodb/mongodb/
mongoBin=$mongoProg"bin/"
mongod=$mongoBin"mongod.exe"
a=$1
if [ "$a" == "start" ];then
    "${mongod} --logpath ${logFile} --logappend --dbpath ${dbpath} &"
elif [ "$a" == "repair" ];then
    "${mongod} --dbpath ${dbpath} --repair"
else
    echo "Incorrect usage"
fi

./init.sh:line 11:s:/programs/mongodb/mongodb/bin/mongod.exe --dbpath s:/ programs / mongodb / data / --repair:没有这样的文件或目录

调用打印的命令可以正常工作:

s:/programs/mongodb/mongodb/bin/mongod.exe --dbpath s:/ programs / mongodb / data / --repair

2 个答案:

答案 0 :(得分:8)

如果你把DOS路径放在引号中,Cygwin实际上会为你做魔法,例如

cd "C:\Program Files\"

答案 1 :(得分:4)

Cygwin无法识别s:等Windows驱动器号,而是使用/cygdrive/s。您的cygwin命令应如下所示:

/cygdrive/s/programs/mongodb/mongodb/bin/mongod.exe --dbpath s:/programs/mongodb/data/ --repair

请注意,传递给可执行文件的参数之类的路径是Windows格式,因为mongod.exe不是Cygwin二进制文件。

为了方便起见,您可以添加mongod.exe路径,然后您无需指定其所在的目录。