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

> maybe some less obscure error messages would be nice?

Bear with me here! The error message is exactly what we’d expect in this situation. The author literally tried to use the string “107” as an executable name, and bash says ‘I can’t find an executable named “107”’.

It’s impossible to be a good software engineer in 2023 without understanding the basics of shell programming. And the absolute number one thing to understand about bash and related shell languages is that “everything is text”. I know one hears people saying that a lot, but you’ve got to really internalize what it means. bash is just constructing strings of text and doing stuff with it. It barely has any non-string data structures.



> The author literally tried to use the string “107”

Well, no. That string was not literally used there at all: if it was, there would have been a literal 107 in the user's input. There wasn't.

> It’s impossible to be a good software engineer in 2023 without understanding the basics of shell programming

> bash is just constructing strings of text and doing stuff with it

It's a reassuring knowledge in 2023, after 40 years of countless bugs, exploits, vulnerabilities and accidentally rm-ed important files, the paradigm of "just constructing strings of text and (blindly) doing stuff with it" is still ubiquitously used and one can not be a good software engineer without extensive knowledge of it. Bash truly deserves description of "a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums" much more than APL.


Agreed, my use of literally was incorrect. But otherwise I don't think we disagree! Bash/zsh etc is a terrible language and it's absurd that knowing it is still required. Nushell is a better direction, but I don't know how the transition's going to be made; I just went back to zsh from nushell.


Actually, my use of "literally" is correct as hibbelig points out. I never said that they used the string literal "107". They literally tried to do something which would clearly lead to attempting to use a string representation of an integer as an executable name.


The author literally tried to use 107 as a command.

The author did not try to use literally 107 as a command.


I agree with you. We can complain about Bash all we want, but Bash is everywhere and isn't going anywhere anytime soon (as much as I'd like something better). So if you want to be a good engineer in today's world, you have to learn it. And if the error message isn't immediately obvious to you yet, don't worry, it just means you haven't yet formed the right mental models. But you will, if you continue to educate yourself by reading articles like these!




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: