0

I'm using the windows port of bash known as win-bash, and based on what it says about paths:

One important difference is the handling of drives: cygwin uses its installation directory as root dir and links all drives in the pseudo subdir /cygdrive. win-bash uses a diffent method: drives are included in paths, like on windows (e.g. c:/Winnt/System32). The root directory / is mapped to the root directory of the current drive. Examples: ls c:/winnt - shows the content of the directory c:/winnt cd c:/; ls /winnt - changes current drive to c: and shows the content of the directory c:/winnt cd d:/; ls /winnt- changes current drive to d: and shows the content of the directory d:/winnt There are some other differences, most of them have been added to simplify the usage of existing un*x shell scripts: If a shell script starts with an interpreter specification like #!/path/interpreter, the interpreter is searched in the PATH environment instead of /path. E.g. a Perl script starting with #!/bin/perl will be started with perl.exe from the PATH environment variable. win-bash doesn't use any dlls or registry keys

Detecting non-root paths seem to work such as: if [ -d "C:/bash" ]; then echo "yes"; else echo "no"; fi However, detecting root paths like so if [ -d "C:/" ]; then echo "yes"; else echo "no"; fi does not work. This also includes C: and /.

Perhaps there is another syntax bash scripting syntax to detect the existence of paths?

1
  • Do C:/. and C:/bash/.. work?
    – ignis
    Apr 27, 2013 at 13:38

3 Answers 3

0

I found that adding a period after the root drive path works as suggested by ignis.

0
0

Workaround: do C:/. and C:/bash/.. work?

0

An alternative to win-bash would be winbash from here. It did a better job at detecting root paths. Both "C:/" and "/" return yes on the tests. Only "C:" failed.

Plus I like that winbash handles the familiar ctrl-key combos we're used to like ctrl-p, ctrl-a, ctrl-e, etc. (in win-bash it just returns "^P" on the screen).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .