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

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
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.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. InfluxDB

    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.

    InfluxDB 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

Did you know that Rust is
the 5th most popular programming language
based on number of references?