basename() in Bash: Strip the Directory From a Path
Get the file name from a path with parameter expansion, matching coreutils basename on trailing slashes, "/" and suffixes, without starting a process.
Category
The pure Bash function library (PHP-style helpers written in Bash) and practical shell scripting techniques.
Get the file name from a path with parameter expansion, matching coreutils basename on trailing slashes, "/" and suffixes, without starting a process.
A ucfirst() for Bash 4+ and macOS's Bash 3.2, what "first character" really means, and how to get "Hello" from "hELLO" or " hello".
A ucwords() for Bash that works word by word instead of char by char, preserves all whitespace, and lets you decide what counts as a word boundary.
Run a command silently and test only its exit status. Why "$@" beats storing a command in a string, and what to use for pipelines.
Delete every occurrence of a substring with one Bash parameter expansion, no sed or tr needed, and the quoting mistakes that make it go wrong.
lcfirst() in Bash with ${var,} and a Bash 3.2 fallback, used for PascalCase to camelCase, plus a fix for names that begin with an acronym.
A str_repeat() for Bash that stays fast at millions of copies, why the common printf trick slows down, and the two bugs in the 2009 version.
Check that input is a whole number, a signed integer or a decimal before doing arithmetic, and avoid the octal, empty-string and injection problems in (( )).