2011-10-02 31 views
3
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:線11:S:/programs/mongodb/mongodb/bin/mongod.exe --dbpath S:/方案/ mongodb的/數據/ --repair:沒有這樣的文件或目錄擊在Cygwin:沒有這樣的文件或目錄

調用打印命令工作正常:

S:/programs/mongodb/mongodb/bin/mongod.exe --dbpath S:/程序/ MongoDB的/數據/ - 修復

+2

通過不將命令封裝在雙引號中進行修復。 – MetaChrome

+1

如果可以包含空格,你仍然應該包裝單個變量'「$ {mongod}」'&'「$ {logFIle}」',但是,一組引用中的整行會導致你看到的錯誤 – nhed

回答

4

Cygwin無法識別Windows驅動器號,例如s:,請改用/cygdrive/s。你的cygwin的命令應該是這樣的:

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

注意一些參數,如您傳遞給可執行文件的路徑是在windows格式mongod.exe不是Cygwin的二進制文件。

爲了方便,你可以添加mongod.exe您的路徑,那麼你並不需要指定它在目錄中。

+0

謝謝,我意識到這一點,但這不是導致問題的原因。 – MetaChrome

8

Cygwin的,實際上做的魔力爲你,如果你把你的DOS路徑在報價中,示例

cd "C:\Program Files\" 
相關問題