FAQ
From win-bash
Contents |
FAQ
What differs win-bash from cygwin-bash?
First of all, you should keep in mind that win-bash is based on a old version of bash (1.14.2) while cygwin-bash is more or less up to date.
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
How can I change the drive?
Use the cd command. The drive letter is optional and can be added at the head of the directory followed by a colon. If the drive letter is given, the current drive is changed. The root directory '/ always points the the current drive's root dir.
The change to the root directory on drive c: write:
cd c:/
Why did you port the very old bash 1.14.2 and not any newer version?
win-bash is based on nt_bash which was based on bash 1.14.2. The port was primary started to make un*x shell scripts run on windows. All tested scripts worked fine with this old version, so the primary goal of the project has been reached even with this old bash version.
