this post was submitted on 03 May 2024
13 points (63.8% liked)

Linux

48338 readers
440 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I know that there are ten different alternatives. Why don't we simply improve the basic stuff?

you are viewing a single comment's thread
view the rest of the comments
[–] GenderNeutralBro@lemmy.sdf.org 5 points 6 months ago (8 children)

other shells like sh, csh, tcsh, zsh, etc. are the same

Zsh has some important differences in how it handles whitespace and quoting, which affects OP's exact example.

Consider this:

touch a b c 'd e f' 'g h i'
for f in *; do ls -la $f; done

In zsh, this works. In bash, it will give you six errors saying d, e, f, g, h, and i do not exist.

[–] OpenStars@discuss.online 2 points 6 months ago (4 children)

That only affects whitespaces within quotes though. Still, fair point, except I just tried a bunch of stuff in both bash and zsh and touching a file works, echoing a string works, then I stopped so I don't know about the asterisk but we have already veered far away from what OP said: "normal foor (sic) loop with whitespace in file names" - whereas what you had seems significantly more advanced than a "normal" foor (sic:-P) loop.

Notably, Mac OSX right out of the box uses zsh. I haven't touched "standard" personal distros for a number of years but a quick search suggests that Mint, Ubuntu, and NixOS all use bash by default - which halfway though not entirely surprises me? Anyway if OP wants to change their default shell to something more advanced, that would be fine for common every-day usage, though asking for bash itself to now be changed after decades of backwards compatibility seems a non-starter to me. There are reasons for why it works as it does, and those reasons have nothing to do with it being "old", but rather b/c it "works".

And the underlying reason for that is b/c we are still using keyboards. The addition of mice as HUDs enabled drag-and-drop, and perhaps some kind of glove or fingertip reader or eyesight-tracker may allow the same, like Minority Report (an old movie) or Iron Man style pinching an "object", grabbing it and letting it go, is basically just another style of "mouse". Afaik, there hasn't been even a hint of anything truly revolutionary for all this time. Although I can envision one such idea: combining keyboard+"mouse" in a more intelligent way, like if you start typing a command, then fix your eyes on the screen to a particular file and perhaps flick your eyes in a particular direction to indicate acceptance and it could fill it in for you, without having to move your hands away from the keyboard. With glasses and ubiquitous cameras everywhere now, we might see something like that in a few decades? Though it would put further pressure onto privacy concerns over having a camera watching every move you make.

[–] Ephera@lemmy.ml 6 points 6 months ago (1 children)

a quick search suggests that Mint, Ubuntu, and NixOS all use bash by default

With Debian-based distros, it's actually a bit weirder. They use dash as the global default shell (i.e. for executing sh scripts).
dash has basically no code for interactive use, so it's supposedly faster and more secure. It is POSIX-compliant, so the treatment of whitespace should be identical, but it doesn't support any of the added features of bash.

If you open up a terminal emulator, they've got that set up to use bash by default, so dash is supposed to be invisible to the user, but well, spoilers, it's not. If you switch to a TTY, for example, it launches there and makes the TTY look completely broken.

[–] OpenStars@discuss.online 3 points 6 months ago

Hehe thank you for the fun extra story:-).

load more comments (2 replies)
load more comments (5 replies)