Advanced Shell Scripting Techniques: Automating Complex Tasks with Bash

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. ShellCheck

    ShellCheck, a static analysis tool for shell scripts

    Reminder of the handy ShellCheck:

    * https://www.shellcheck.net

    Even if you don't follow or agree with its advice, it can be a handy and quick second opinion / sanity check.

  2. Sevalla

    Deploy and host your apps and databases, now with $50 credit! Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!

    Sevalla logo
  3. nushell

    A new type of shell

    While the tricks are nice, we also have the option of jumping to something like http://www.nushell.sh/ for an overall more sane environment.

  4. libcnb.rs

    A framework for writing Cloud Native Buildpacks in Rust

    When people say “scripts” many time it’s right after “deploy” which is my target area. I’m not trying to take away from the bash conversation, I’m trying to find allies who care about writing the best possible “scripts” (and script adjacent programs) in one or more languages.

    One of the most recent things I worked on was a hybrid of bash and rust. So I still write a fair share of bash.

    > scripts will always have their place

    100% agree, hence all the caveats. I resonated with the article in that it was talking about ways to make your code faster, better, etc.

    It’s my experience that few aim to write a suite of bash scripts that stay in production for a decade+. It just grows that way because it was the lowest cost, lowest effort thing to do. To your point.

    I think content like this is a really good first step, but what about a second step when it’s no longer enough or you realize this adhoc “temporary fix” utility is now the linchpin of your team?

    One idea is to rewrite in another language. If not the whole thing, a subsection. I tried Ruby scripting (Ruby dev since 2006) and while I feel it’s better than bash (to maintain) it still has some strong downsides like the need to bootstrap with an interpreter. Which eats into the upsides.

    Bash and Ruby struggle with sharing or extending functionality. Bash relies on system commands and Ruby relies on gems/libraries. And in a lot of these adhoc weird situations I find myself in I cannot install packages let alone bundle install libraries. Then you mix in interoperability of gnu versus bsd tools and throw some windows in the mix and it can get really unwieldy really fast.

    On the deploy front here’s the CNB Rust project https://github.com/heroku/libcnb.rs

    And docs for people who might want to use (but not author) them https://github.com/heroku/buildpacks.

  5. buildpacks

    Heroku Cloud Native Buildpacks (by heroku)

    When people say “scripts” many time it’s right after “deploy” which is my target area. I’m not trying to take away from the bash conversation, I’m trying to find allies who care about writing the best possible “scripts” (and script adjacent programs) in one or more languages.

    One of the most recent things I worked on was a hybrid of bash and rust. So I still write a fair share of bash.

    > scripts will always have their place

    100% agree, hence all the caveats. I resonated with the article in that it was talking about ways to make your code faster, better, etc.

    It’s my experience that few aim to write a suite of bash scripts that stay in production for a decade+. It just grows that way because it was the lowest cost, lowest effort thing to do. To your point.

    I think content like this is a really good first step, but what about a second step when it’s no longer enough or you realize this adhoc “temporary fix” utility is now the linchpin of your team?

    One idea is to rewrite in another language. If not the whole thing, a subsection. I tried Ruby scripting (Ruby dev since 2006) and while I feel it’s better than bash (to maintain) it still has some strong downsides like the need to bootstrap with an interpreter. Which eats into the upsides.

    Bash and Ruby struggle with sharing or extending functionality. Bash relies on system commands and Ruby relies on gems/libraries. And in a lot of these adhoc weird situations I find myself in I cannot install packages let alone bundle install libraries. Then you mix in interoperability of gnu versus bsd tools and throw some windows in the mix and it can get really unwieldy really fast.

    On the deploy front here’s the CNB Rust project https://github.com/heroku/libcnb.rs

    And docs for people who might want to use (but not author) them https://github.com/heroku/buildpacks.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • RubyConf 2024: Cloud Native Buildpack Hackday (and other Ruby deploy tools, too)

    2 projects | news.ycombinator.com | 30 Dec 2024
  • .NET Support on Heroku

    6 projects | news.ycombinator.com | 2 Dec 2024
  • Shellcheck

    1 project | news.ycombinator.com | 16 Apr 2025
  • TIL: Some surprising code execution sources in bash

    1 project | news.ycombinator.com | 22 Nov 2024
  • Deploying a Rails 7 + React app to AWS via Dokku

    7 projects | dev.to | 8 Oct 2024