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
答案 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
路径,然后您无需指定其所在的目录。