---
title: "Bash | Skills We Assign For | Azendo"
description: "Bash for operations scripting — where it fits, when to stop, and the Azendo roles assigned for it."
url: "https://azendo.co/skills/bash/"
---

[Skills](https://azendo.co/skills/) Languages and runtimes 

# Bash.

Bash is the shell and scripting language present on effectively every Unix-like system. It is the glue of operations work: deployment steps, CI jobs, container entrypoints and the small automations that hold an estate together.

## Where Bash fits on a long engagement.

Bash is unbeatable for its actual purpose: running commands in sequence, wiring processes together, and doing it from a container or a CI step with no runtime to install. For that, nothing else is as available or as direct.

It degrades badly past a few dozen lines. Error handling is opt-in and easy to get wrong, quoting rules produce failures on filenames with spaces, and there is no type system to catch anything. A script that has grown to several hundred lines with functions and arrays has usually outgrown the language, and the honest move is to rewrite it in Python rather than keep extending it.

## What an assigned team does with Bash.

Small operational scripts are where an estate's undocumented behaviour accumulates. A deployment script written by someone who left, doing something nobody can fully explain, is a standard finding and a standing risk.

Bringing those into version control and review alongside everything else is basic hygiene, held as part of the standards described in [how an assignment runs](https://azendo.co/how-it-works/).

## What we use Bash for.

* Container entrypoints and CI steps Direct command sequencing where adding a runtime would be the wrong trade.
* Failing loudly rather than silently Strict mode and quoting discipline, so an error stops the script instead of continuing.
* Knowing when to stop Rewriting in a real language once a script grows past what Bash can express safely.

## How Bash capacity is assigned.

Operational scripting sits inside platform capacity, with scripts held in version control and reviewed rather than accumulating on servers.

## Roles we assign Bash for

* [DevOps Engineer Cloud and DevOps](https://azendo.co/services/cloud-and-devops/devops-engineer/)

## Service lines it sits in

* [Cloud and DevOps](https://azendo.co/services/cloud-and-devops/)

Capacity is agreed as a committed monthly capacity across a discipline, not per skill.

## Related in languages and runtimes

* [Python — skill we assign for](https://azendo.co/skills/python/)
* [Java — skill we assign for](https://azendo.co/skills/java/)
* [TypeScript — skill we assign for](https://azendo.co/skills/typescript/)
* [Node.js — skill we assign for](https://azendo.co/skills/nodejs/)
* [React — skill we assign for](https://azendo.co/skills/react/)
* [Next.js — skill we assign for](https://azendo.co/skills/nextjs/)
* [R — skill we assign for](https://azendo.co/skills/r/)
* [.NET — skill we assign for](https://azendo.co/skills/dotnet/)

## Tell us what your roadmap needs Bash for.

A service delivery manager replies with the disciplines we would assign, the monthly capacity and what the first month looks like.

[All skills we assign for](https://azendo.co/skills/)
