Я использую порт Windows bash, известный как win-bash, и основываясь на том, что говорится о путях:

Одним из важных отличий является обработка дисков: cygwin использует свой установочный каталог в качестве корневого каталога и связывает все диски в псевдо-subdir /cygdrive. win-bash использует другой метод: диски включены в пути, как в Windows (например, c: /Winnt /System32). Корневой каталог / сопоставлен с корневым каталогом текущего диска. Примеры: ls c: / winnt - показывает содержимое каталога c: / winnt cd c: /; ls / winnt - изменяет текущий диск на c: и показывает содержимое каталога c: / winnt cd d: /; ls / winnt - изменяет текущий диск на d: и показывает содержимое каталога d: / winnt. Существуют некоторые другие отличия, большинство из них были добавлены для упрощения использования существующих сценариев оболочки un * x: если сценарий оболочки запускается со спецификацией интерпретатора как #!/ путь / интерпретатор, интерпретатор ищется в среде PATH вместо / пути. Например, Perl-скрипт, начинающийся с #!/ bin / perl будет запущен с perl.exe из переменной среды PATH. win-bash не использует dll или ключи реестра

Кажется, что обнаружение путей без полномочий root работает так:if [ -d "C:/bash" ]; then echo "yes"; else echo "no"; fi Однако, обнаружение корневых путей, например, так if [ -d "C:/" ]; then echo "yes"; else echo "no"; fi не работает. Это также включает C: и / .

Возможно, есть другой синтаксис синтаксиса bash-сценариев для обнаружения существования путей?

3 ответа3

0

Я обнаружил, что добавление точки после пути к корневому диску работает так, как предлагает ignis.

0

Обходной путь: сделать C:/. а C:/bash/.. работает?

0

Альтернативой win-bash будет winbash отсюда. Он лучше справился с обнаружением корневых путей. И "C:/", и "/" возвращают да в тестах. Только "C:" не удалось.

Кроме того, мне нравится, что winbash обрабатывает знакомые комбинации клавиш ctrl- key, которые мы привыкли называть ctrl- p, ctrl- a, ctrl- e и т.д. (В win-bash он просто возвращает «^ P» на экране).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .