Articles
DevOps
Shell scripts, CI/CD pipelines and the exit-code traps, pipe gotchas and quiet false positives that live in the plumbing between them.
Everything in DevOps

09/27/2026
grep exit status: 0, 1 and 2 explained
grep exits 0 when it selected a line, 1 when it selected none, and 2 on an error. Here is what -q, -c, set -e and pipelines do to that.

09/15/2026
A 403 Isn't a Broken Link: Bot Blocking in Link Checkers
Link checkers report pages as broken when the site is really just refusing a script. How to tell a dead link from a blocked one, with a small Python check.

09/15/2026
ln -sin Git Bash Copies Instead of Linking (and Exits 0)On Windows, Git Bash's ln -s quietly makes a copy, not a symlink, and reports success. Here's why, how to get a real symlink, and how to check you got one.

09/15/2026
mysqldump | gzipMade a 20-Byte Backup That Said It WorkedA piped backup reports only the last command's exit code, so a failed mysqldump still produced a 20-byte .gz marked completed. The fix is pipefail, plus a check.

09/10/2026
grepExits Zero When It Finds the Word FAILEDA CI gate piped test output through grep for readability, and a red build passed anyway -- because grep succeeds when it finds a match, even the word FAILED.