Bash на Cygwin: нет такого файла или каталога - PullRequest
3 голосов
/ 03 октября 2011
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: / Programs / mongodb / data / --repair: такого файла или каталога нет

Вызов напечатанной команды работает нормально:

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

Ответы [ 2 ]

8 голосов
/ 25 мая 2012

Cygwin на самом деле сделает магию для вас, если вы поставите пути DOS в кавычки, например

cd "C:\Program Files\"
4 голосов
/ 03 октября 2011

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 ваш путь, тогда вам не нужно указывать каталог, в котором он находится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...