Я пытаюсь справиться со сценариями Bash через Cygwin. Мой сценарий почти так прост, как это добирается.
Я изменяю каталог на корень моего диска C и печатаю новое местоположение.
#!/usr/bin/bash
cd /cygdrive/c
pwd
сохраняется в файле chdir.sh
в моем корневом каталоге. Я затем звоню ./chdir.sh
от подсказки удара. Это приводит к ошибке
: No such file or directorygdrive/c
/cygdrive/c/Documents and Settings/rcotton
У меня определенно есть диск C и команда cd /cygdrive/c
работы, когда я называю его непосредственно от подсказки удара.
Я понимаю, что эта проблема вероятна глупо простая; можете Вы говорить мне, что я делаю неправильно.
На всякий случай Вы отредактировали свой сценарий с редактором, который не является частью среды Cygwin (например, ничто как 'Блокнот*', 'WordPad', и т.д.): преобразуйте свой сценарий в Unix-lineendings через 'dos2unix' инструмент.
Сам сценарий абсолютно корректен, никакая потребность в любом / или \изменения. Сообщение об ошибке
: No such file or directorygdrive/c
приводит меня думать о проблемах с lineending с тех пор \r\n (окончание строки Windows). На всякий случай у Вас нет 'dos2unix' установленным:
tr -d \\r < win.txt > unix.txt
или
sed -e 's/$/\r/' < unix.txt > win.txt
Вы уверены, что используете наклонную черту вправо и не обратную косую черту, в Вашей команде CD? Ваша проблема была бы симптоматической для путания этих двух.
Попробуйте эти варианты, если просто единственная наклонная черта вправо продукты действительно там и производят эту странную ошибку:
cd //cygdrive//c
или
cd \\cygdrive\\c
Кому: ttarchala (и г-н Cotton)
В cygwin, //start1/path_2/stuff/long
триггерный UNC взламывает режим, который рассматривает start1
как сервер SMB с долей path_2
. Это не то, что было предназначено.
Это будет иногда кусать Вас в определенных сценариях оболочки, которые совместно используются с UNIX, где несколько наклонных черт вправо всегда объединяются к единственной наклонной черте. В cygwin несколько наклонных черт вправо объединяются КРОМЕ ТОГО, если это - начинающееся, которое является триггерным режимом UNC.