make for Project Automation (It's Not Just for C Code)
Forget bash scripts scattered across your repo. make is a simple task runner that's been around for 50 years and works everywhere.
All the articles with the tag "scripting".
Forget bash scripts scattered across your repo. make is a simple task runner that's been around for 50 years and works everywhere.
Stop committing broken code. Git hooks catch mistakes before they hit CI, save hours of debugging, and make your team love you.
Master bulk file renaming on Linux with rename, vidir, fd, and mmv. The right tool for every scenario from regex rewrites to visual editing.
Shell scripts hit a complexity wall. Go gives you a single binary, fast startup, great stdlib, and goreleaser for proper distribution. Here's how to build real CLI tools.
Master the curl flags that'll save you hours debugging APIs, downloads, and web requests. From -X to --compressed, here's what actually matters.
Named pipes (FIFOs) let you buffer and synchronize between processes. They're underused but solve real problems: queuing, coordination, and complex data flows.
Declare, iterate, slice, and manipulate bash arrays safely. Indexed and associative arrays, the @ vs * trap, and patterns that make scripts readable.
Process substitution lets you treat a command's output as a file, and feed input to a command as if it were a file. It's weird but powerful.
Bash heredocs and here strings explained: <<EOF for multiline input, <<-EOF for tab-indented blocks, <<<string for single lines, and when to use each.
GNU parallel runs tasks in parallel across CPU cores. It's faster than xargs and easier than writing a job queue. Here's when and how to use it.
Use trap EXIT to clean up temp files, INT/TERM for graceful shutdown, and ERR for errors. Stop your bash scripts from leaving messes when they die.
set -x prints every command before it runs. Add PS4 for context. Use trap for cleanup. Here's the toolkit every bash debugger needs.