Я использую порт 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-сценариев для обнаружения существования путей?