CLI
Why executable scripts shouldn't have extensions. Learn GitHub's scripts-to-rule-them-all pattern for language-agnostic project automation.
Replace which with command -v for POSIX-compliant executable lookup. Learn why command -v is the portable alternative for finding program paths.