Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If you want simple shell scripts to work, make an actually good shell language without all the footguns.

The filesystem is way more important than /bin/sh and and any complexity added there will trickle down to all programs, not just shell scripts.

It's not worth adding hacks on the FS to patch defects in poorly written shell scripts (which are being replaced en masse with python/nodejs/even weirder yaml files/systemd units/etc... anyways)



Whitespace in filenames in general is difficult to deal with. Many, maybe most, programs get it wrong. It's not just about shell scripts, many GUI programs fail to handle those files properly too.


When GUI programs mishandle filenames with spaces, IME it's usually because they spawn a subshell in a naive way (system("rm " + filename)).

To mishandle spaces you have to split an input w/ filenames by whitespace, which is not that common of an operation outside of a shell.


My favorite file+space issues is spaces at the end of file names, especially when you copy and paste text, or text gets trimmed from an input box, or the person forgets to trim space from an input box...


The vast majority of Windows and MacOS programs get it right.


No, no they don't - you just don't notice when they get it wrong, and you also don't name your files stupid things (I imagine).

If you actually test this, you'll realize a ton of Windows programs get it wrong.

Also, in general this is a poor argument. The goal of Linux isn't to be as much like Windows as possible, because Windows sucks ass. Nobody in their right mind would use Linux if it was just Windows but, presumably, shittier. The entire appeal of Linux is that it isn't Windows, and it isn't MacOS.


Eh? It's really not a bother in pretty much any programming language, and you don't really need to do anything special for it. I don't know any program that has any problems with it.

Even zsh has fixed this. It's just /bin/sh and bash that are annoying.


nushell uses real lists for things which means you don't need to care about seperators except when dealing with external system things




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: