Простые сценарии Bash

Я пытаюсь справиться со сценариями 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 работы, когда я называю его непосредственно от подсказки удара.

Я понимаю, что эта проблема вероятна глупо простая; можете Вы говорить мне, что я делаю неправильно.

5
задан 07.04.2010, 21:06

4 ответа

На всякий случай Вы отредактировали свой сценарий с редактором, который не является частью среды 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
7
ответ дан 07.12.2019, 17:30

Вы уверены, что используете наклонную черту вправо и не обратную косую черту, в Вашей команде CD? Ваша проблема была бы симптоматической для путания этих двух.

Попробуйте эти варианты, если просто единственная наклонная черта вправо продукты действительно там и производят эту странную ошибку:

cd //cygdrive//c

или

cd \\cygdrive\\c
0
ответ дан 07.12.2019, 17:30

Попробовать #!/usr/bin/bash.exe и посмотрите, имеет ли это значение. Любой работы над моей установкой Cygwin, но файл на самом деле назван bash.exe.

0
ответ дан 07.12.2019, 17:30

Кому: ttarchala (и г-н Cotton)

В cygwin, //start1/path_2/stuff/long триггерный UNC взламывает режим, который рассматривает start1 как сервер SMB с долей path_2. Это не то, что было предназначено.

Это будет иногда кусать Вас в определенных сценариях оболочки, которые совместно используются с UNIX, где несколько наклонных черт вправо всегда объединяются к единственной наклонной черте. В cygwin несколько наклонных черт вправо объединяются КРОМЕ ТОГО, если это - начинающееся, которое является триггерным режимом UNC.

0
ответ дан 07.12.2019, 17:30

Теги

Похожие вопросы