Welcome, Guest! Log In | Create Account

FAQ

From win-bash

Jump to: navigation, search

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.