▲ 44 ▼ POSIX.1-2024 has been published (ieeexplore.ieee.org) submitted 2 years ago by mox@lemmy.sdf.org to c/programming@programming.dev 17 comments fedilink hide all child comments A note from earlier today says the HTML edition will be available soon. I assume that means it will show up here: https://pubs.opengroup.org/onlinepubs/9699919799/
[–] flying_sheep@lemmy.ml -5 points 2 years ago* (3 children) Shell scripts were a mistake. The weirdness you have to remember to safely stop executing when something fails is mind-boggling. I'm so glad nushell exists and doesn't need any configuring to just do the reasonable thing and stop executing when something fails. permalink fedilink source parent hideshow 6 child comments replies: [–] bhamlin@lemmy.world 3 points 2 years ago* (1 child) Shell scripts were a mistake. I understand 1000% but I'm not sure I agree. With the peevishness of C and latent autism of assembly, something compiled or otherwise binary isn't always simple and straightforward. Sometimes, you have a task that only needs to be done three times, and just replaying the commands is sufficient. sh, ash, and bash are all kinda dumb. Absolutely. But there are other shells that are significantly better. csh and zsh are both great. ksh has some history on it but is good too. But "shell scripts" don't have to be in your shell language. The hashbang line will let you make a command file and so long as you can describe the command line you can get most shells to run it. Be that language line noise perl or python or even go. permalink fedilink source parent hideshow 2 child comments replies: [–] flying_sheep@lemmy.ml 2 points 2 years ago* As a long time former ZSH user, I'll definitely include ZSH in shell languages to avoid for scripting. The problem is simply the number of rules and incantations to slavishly include everywhere to make your script bail on error. set -e is not enough by far. Python with plumbum or nushell are definitely better. permalink fedilink source parent [–] heeplr@feddit.de 1 point 2 years ago* (1 child) Shell scripts were a mistake. The weirdness you have to remember to safely stop executing when something fails is mind-boggling. nushell scripts aren't shellscripts? permalink fedilink source parent hideshow 2 child comments replies: [–] flying_sheep@lemmy.ml 1 point 2 years ago I usually write “POSIXy shell” but I thought that was clear from context this time. The problem is that exit statuses !=0 aren't treated as error by default (with a way to turn that off for individual expressions). Instead you have to set multiple settings and avoid certain constructs in bash/ZSH/... Everything that works like a modern programming language by default is fine of course permalink fedilink source parent [–] joyjoy@lemm.ee 1 point 2 years ago (1 child) All you need to do is set -e at the start of the script to stop on a non-0 exit code. And quote variables to prevent globbing. permalink fedilink source parent hideshow 2 child comments replies: [–] flying_sheep@lemmy.ml 1 point 2 years ago (2 children) Oh you sweet summer child. If you don't use pipes or command substitutions, set -e gets you a fair part of the way there. If you're interested, I can look up the rest of the arcane incantations necessary. permalink fedilink source parent hideshow 4 child comments replies: [–] joyjoy@lemm.ee 1 point 2 years ago (1 child) Here's a neat tidbit. Using curl without -f --fail will make non-2xx status codes return success, so set -e won't help there. permalink fedilink source parent hideshow 2 child comments replies: [–] flying_sheep@lemmy.ml 1 point 2 years ago Yeah, and that's just one of many many things to consider. permalink fedilink source parent [+] oscar@programming.dev 1 point 2 years ago [deleted] permalink fedilink source parent
[–] bhamlin@lemmy.world 3 points 2 years ago* (1 child) Shell scripts were a mistake. I understand 1000% but I'm not sure I agree. With the peevishness of C and latent autism of assembly, something compiled or otherwise binary isn't always simple and straightforward. Sometimes, you have a task that only needs to be done three times, and just replaying the commands is sufficient. sh, ash, and bash are all kinda dumb. Absolutely. But there are other shells that are significantly better. csh and zsh are both great. ksh has some history on it but is good too. But "shell scripts" don't have to be in your shell language. The hashbang line will let you make a command file and so long as you can describe the command line you can get most shells to run it. Be that language line noise perl or python or even go. permalink fedilink source parent hideshow 2 child comments replies: [–] flying_sheep@lemmy.ml 2 points 2 years ago* As a long time former ZSH user, I'll definitely include ZSH in shell languages to avoid for scripting. The problem is simply the number of rules and incantations to slavishly include everywhere to make your script bail on error. set -e is not enough by far. Python with plumbum or nushell are definitely better. permalink fedilink source parent
[–] flying_sheep@lemmy.ml 2 points 2 years ago* As a long time former ZSH user, I'll definitely include ZSH in shell languages to avoid for scripting. The problem is simply the number of rules and incantations to slavishly include everywhere to make your script bail on error. set -e is not enough by far. Python with plumbum or nushell are definitely better. permalink fedilink source parent
[–] heeplr@feddit.de 1 point 2 years ago* (1 child) Shell scripts were a mistake. The weirdness you have to remember to safely stop executing when something fails is mind-boggling. nushell scripts aren't shellscripts? permalink fedilink source parent hideshow 2 child comments replies: [–] flying_sheep@lemmy.ml 1 point 2 years ago I usually write “POSIXy shell” but I thought that was clear from context this time. The problem is that exit statuses !=0 aren't treated as error by default (with a way to turn that off for individual expressions). Instead you have to set multiple settings and avoid certain constructs in bash/ZSH/... Everything that works like a modern programming language by default is fine of course permalink fedilink source parent
[–] flying_sheep@lemmy.ml 1 point 2 years ago I usually write “POSIXy shell” but I thought that was clear from context this time. The problem is that exit statuses !=0 aren't treated as error by default (with a way to turn that off for individual expressions). Instead you have to set multiple settings and avoid certain constructs in bash/ZSH/... Everything that works like a modern programming language by default is fine of course permalink fedilink source parent
[–] joyjoy@lemm.ee 1 point 2 years ago (1 child) All you need to do is set -e at the start of the script to stop on a non-0 exit code. And quote variables to prevent globbing. permalink fedilink source parent hideshow 2 child comments replies: [–] flying_sheep@lemmy.ml 1 point 2 years ago (2 children) Oh you sweet summer child. If you don't use pipes or command substitutions, set -e gets you a fair part of the way there. If you're interested, I can look up the rest of the arcane incantations necessary. permalink fedilink source parent hideshow 4 child comments replies: [–] joyjoy@lemm.ee 1 point 2 years ago (1 child) Here's a neat tidbit. Using curl without -f --fail will make non-2xx status codes return success, so set -e won't help there. permalink fedilink source parent hideshow 2 child comments replies: [–] flying_sheep@lemmy.ml 1 point 2 years ago Yeah, and that's just one of many many things to consider. permalink fedilink source parent [+] oscar@programming.dev 1 point 2 years ago [deleted] permalink fedilink source parent
[–] flying_sheep@lemmy.ml 1 point 2 years ago (2 children) Oh you sweet summer child. If you don't use pipes or command substitutions, set -e gets you a fair part of the way there. If you're interested, I can look up the rest of the arcane incantations necessary. permalink fedilink source parent hideshow 4 child comments replies: [–] joyjoy@lemm.ee 1 point 2 years ago (1 child) Here's a neat tidbit. Using curl without -f --fail will make non-2xx status codes return success, so set -e won't help there. permalink fedilink source parent hideshow 2 child comments replies: [–] flying_sheep@lemmy.ml 1 point 2 years ago Yeah, and that's just one of many many things to consider. permalink fedilink source parent [+] oscar@programming.dev 1 point 2 years ago [deleted] permalink fedilink source parent
[–] joyjoy@lemm.ee 1 point 2 years ago (1 child) Here's a neat tidbit. Using curl without -f --fail will make non-2xx status codes return success, so set -e won't help there. permalink fedilink source parent hideshow 2 child comments replies: [–] flying_sheep@lemmy.ml 1 point 2 years ago Yeah, and that's just one of many many things to consider. permalink fedilink source parent
[–] flying_sheep@lemmy.ml 1 point 2 years ago Yeah, and that's just one of many many things to consider. permalink fedilink source parent