Ask HN: Why hasn't anyone made a bash-like shell that directly targets Windows?
I get that some aspects of bash and friends are wrapped up in Unix/GNU/etc, but not everything. It seems like there are lots of core commands and basic interaction features, and maybe even some things like Linux-style piping, that could be replicated on Windows without bridging the entirety of the Linux system interfaces for 100% compatibility (like WSL does).
Why isn't there a native Windows shell out there that's just designed to be comfortable-enough for bash users, in the low-hanging ways?
23 comments
[ 3.7 ms ] story [ 41.3 ms ] threadCommand-history works the same way
Pipes and angle bracket operators work the same way
Setting env variables inline works the same way
All the familiar basic commands for getting around (cd, ls, cat, etc) are present and work the same way (same flags, same output format, etc)
All the little things that trip you up when you just try and use cmd.exe to do something simple would work the way you expect them to from bash. Everything that doesn't translate falls back to the normal Windows behavior. 80% of the benefit, 20% of the effort/complexity
Powershell seems like it tries to change some things up for the "better", but what I really want is something where a person who's used to Unix can just pop into Windows and hit the ground running with all the basic stuff without having to learn a "new" shell first
It has some drawbacks, though, most notably lack of Unicode support.
> The BusyBox shell is based on ash. It strives to be POSIX-compatible, though it does support some features of bash. A UNIX-style shell is something like the Windows command prompt, though much more powerful. It can be used as an interactive command line or to run shell scripts (like Windows batch files, though again, much more powerful).
The shell in the busybox-w32 port has much of the POSIX and bash goodness of upstream BusyBox. It's a native WIN32 application so there are some concepts that don't translate well. For example, job control isn't supported and signal handling is limited. On the whole, though, I think it provides a reasonably comfortable shell experience.
In the first iteration, they just ported Korn shell to windows but it wasn't that useful. So after a couple of iterations they ended up with Powershell.
I still wonder if a modern, open-source, "this is designed to make bash people comfy" shell has a place
https://github.com/microsoft/terminal
UNIX is file-based and Windows is object-based. Windows and UNIX users/engineers tend to have vastly different philosophies.
When Microsoft set out to create a new shell that rivaled bash, they came out of it with PowerShell.
I think they succeeded with that, PS performance issues aside.