[HN Gopher] Bash Pitfalls
___________________________________________________________________
Bash Pitfalls
Author : pujjad
Score : 74 points
Date : 2022-02-15 12:19 UTC (1 days ago)
(HTM) web link (mywiki.wooledge.org)
(TXT) w3m dump (mywiki.wooledge.org)
| [deleted]
| rr808 wrote:
| bash is a pitfall. In this world of IAC, powerful tools, unit
| testing, CICD, well crafted languages and libraries its a relic
| of an old time long gone.
| dehrmann wrote:
| But practically everything unixy supports some shell variant
| that's similar to the others, so we have no choice in the
| matter. I compare this to PHP. They're both bad, PHP is a
| choice.
| skrtskrt wrote:
| there's just no way we should all be scripting in a language
| where typing out anything more than a single command
| necessitates a cascade of "well ACKshually it should be done
| this way" corrections, whether it's from a static analysis
| tools or your grey-bearded Bash-wizard coworkers.
|
| We are eventually going to look at using bash and similar
| shells for scripting as the bad old days.
| avgcorrection wrote:
| Amen to that. I second guess every line that I write in Bash
| that isn't a simple command.
| Aloha wrote:
| If there is only one correct answer to a problem in a given
| language, people will shunt that creativity to architecture
| or elsewhere. People still want to be creative in their work,
| programming and system administration is fundamentally a
| creative job.
|
| Which would you rather have, a script that was too clever by
| half, or a system architecture that was too clever by half?
|
| It's a whole lot easier to fix the script than it is the
| system architecture.
| skrtskrt wrote:
| So - if people instead could use a shell/script language
| that offers some more correctness/guarantees or fewer
| pitfalls, they will subconsciously make bugs in the system
| outside of that script because creativity?
| Aloha wrote:
| If they dont get to be creative in solving the problem -
| if their job is simply to be a human emitter of YAML,
| then that creativity will be spent elsewhere.
| skrtskrt wrote:
| Not sure how we got from wishing we could use a language
| with fewer footguns than bash to... human emitter of YAML
| whose creativity has been ripped from them, so they will
| now design overly-clever systems as some sort of creative
| outlet?
| deknos wrote:
| and still it's the only one which is easily available
| everywhere and for the most part already in the allow/whitelist
| of tooling in most organizations as redhat and debian/ubuntu
| are almost everywhere.
| 243423443 wrote:
| https://web.archive.org/web/20220215122427/mywiki.wooledge.o...
| joshbaptiste wrote:
| This and https://wiki.bash-hackers.org, #bash on irc (libera now)
| helped me tremendously on writing hardened scripts in production.
| cybarDOTlive wrote:
| nice thanks for sharing!
|
| https://github.com/dylanaraps/pure-bash-bible
|
| >The goal of this book is to document commonly-known and
| lesser-known methods of doing various tasks using only built-in
| bash features. Using the snippets from this bible can help
| remove unneeded dependencies from scripts and in most cases
| make them faster.
| darkwater wrote:
| > https://github.com/dylanaraps/pure-bash-bible
|
| Interesting, although on a quick skimming most of the
| functions listed there are wrappers over... printf?
| dang wrote:
| Related:
|
| _Bash Pitfalls_ - https://news.ycombinator.com/item?id=24401085
| - Sept 2020 (111 comments)
|
| _Bash Pitfalls_ - https://news.ycombinator.com/item?id=10068567
| - Aug 2015 (38 comments)
|
| _Bash Pitfalls_ - https://news.ycombinator.com/item?id=6790169 -
| Nov 2013 (54 comments)
|
| _Common Bash Pitfalls_ -
| https://news.ycombinator.com/item?id=869560 - Oct 2009 (25
| comments)
|
| _Bash Pitfalls_ - https://news.ycombinator.com/item?id=52700 -
| Sept 2007 (1 comment)
| notreallyserio wrote:
| I often see your "related" comment at the top of these posts
| and they mostly seem to match what shows up when you click
| "past". Would it make sense to automatically add a prominent
| link to the most recent or most commented on post in the header
| so you wouldn't have to copy & paste the links as comments?
| smegsicle wrote:
| I don't get this pervasive myth that dang is some kind of
| robot slave who lives on managed time and 'copies' and
| 'pastes' things- dang is a real person who types every letter
| and loves every second of it.
|
| It's dang's choice to have two windows open- one with the
| comment box, and one with the 'past' page- and to read which
| ones have discussion with his human eyes, and then to type
| out the relevant information into the comment box. I'm
| vicariously offended that anyone would think this is a task
| that should, or even could, be even partially automated.
| dylan604 wrote:
| come come, we all know dang is just a bot that PG made a
| long time ago ;-)
| throwaway_dcnt wrote:
| Hahaha, I think you have it inverted. Dang is the person,
| PG is the bot.
| dang wrote:
| There are a lot of differences--you just have to squint to
| see them. I think a better solution would be software to let
| the community collaborate on building a related-links list.
| That could also naturally expand to including related URLs to
| articles on the same topic, even if they didn't get a
| previous HN conversation.
| dpifke wrote:
| I want a related-comments tool, so that when anyone posts a
| comment on a story about Tesla Autopilot or nuclear energy,
| they can see links to the 10,000 unoriginal comments
| mirroring what they wrote (again).
| unfocussed_mike wrote:
| The title of this article brings to mind an imaginary platform
| game with controls so complex you have to have three browser tabs
| of instructions open to play it.
|
| I am hopeful that the page will have a screenshot, when I am able
| to access it.
| chomp wrote:
| Can't load the link, but I'm intimately familiar with Greg's
| wiki. It's been around for ages and a very great resource for
| Bash arcana.
| simula67 wrote:
| HN hug of death? Mirror: https://archive.is/Vz4M5
| HenrikB wrote:
| (Disclaimer: I'm the co-developer)
|
| Together with GitHub user xPMo, I created a Shellcheck REPL tool
| (https://github.com/HenrikBengtsson/shellcheck-repl) that
| validates your Bash commands using ShellCheck _before_ they are
| evaluated. For example,
|
| $ words="lorem ipsum dolor" $ echo $words ^-- SC2086: Double
| quote to prevent globbing and word splitting.
|
| It was a toy project at first, but since I've learned so much
| about Bash from using it, I now have it enabled all the time.
| actually_a_dog wrote:
| Neat. I like it.
|
| I do have one suggestion: you have it ignoring "SC2154: 'var'
| is referenced but not assigned" by default, which makes sense
| on the command line because you're often not assigning and then
| referencing the same variable in a single command. But, I think
| it would be useful to have a similar warning like "SCREPL01:
| 'var' is not defined in the local environment," or something,
| which you might implement in shellcheck-repl itself. That rule
| could simply check to see if 'var' exists in the current
| shell's environment or if it's defined in the user's current
| command.
|
| I think bash is simple enough that you might not have to a
| full-blown parse on the input to pick out instances of variable
| use (just look for 'export var', 'unset var', 'var=', and the
| like). You'd also want to take into account special variables
| like $RANDOM and $HOSTNAME, but that's pretty trivial.
___________________________________________________________________
(page generated 2022-02-16 23:02 UTC)