Will It Vibe logoWill It Vibe?
SHELL-002Low severity-4 points

Script has no shebang line

Part of Code Quality & Syntax, which counts for 20% of the overall score. When this check fires it deducts 4 points from that category, once per scan, no matter how many places it turns up.

What it detects

A .sh/.bash file with no '#!' as its very first line depends on whoever runs it to know (and type) the right interpreter; run directly (./script.sh) it either fails or falls back to the caller's default shell, which is not always bash. This is a heuristic: files that are always sourced, never executed directly, are a recognised exception.

Why it matters

A .sh/.bash file with no '#!' shebang as its first line has no way to declare which interpreter it needs. Run directly (./script.sh) it depends on the caller's default shell, which on some systems is dash or sh rather than bash, and bash-only syntax elsewhere in the same script (arrays, [[ ]], process substitution) then fails or behaves differently than the author tested.

How to fix it

Add a shebang as the literal first line, most portably '#!/usr/bin/env bash' (or '#!/usr/bin/env sh' if the script is genuinely POSIX-only). If the file is a library meant only to be sourced by other scripts and never executed on its own, a shebang is optional; document that intent instead (a header comment saying 'source only, do not execute directly' is enough).

The paid report includes a ready-to-paste prompt for your AI coding agent for every check it finds, pointed at the exact findings from your scan. See pricing

Does your repo trip this check?

Paste a GitHub URL or drop a project folder. Scans run in your browser and take seconds.

Scan your repo

Related Code Quality & Syntax checks