cl-launch is a self-contained shell-script that will abstract away the details of the underlying Lisp implementation by generating the proper Lisp and shell code. Access to command line arguments, quitting, etc., can then be done portably using uiop. For instant startup of all your scripts, you'll probably want to dump a multicall binary image, which you can do using cl-launch. See Common Lisp as a Scripting Language, 2015 edition.
If you insist on doing things manually and not portably, here is some information for invoking Lisp source files as shell scripts for a few particular Common Lisp implementations:
|Implementation||Shebang invocation||Command-line arguments||More info|
|CLISP||#!/usr/local/bin/clisp||EXT:*ARGS*||CLISP quickstart delivery|
|ECL||#!/usr/local/bin/ecl -q -norc -shell||(si:argc), (si:argv N)||ecl(1) manual page|
|GCL||#!/usr/local/bin/gcl -f||si:*command-args*||gcl(1) manual page|
|SBCL||#!/usr/local/bin/sbcl --script||sb-ext:*posix-argv*||SBCL manual section 3.1.3|
Other topics: deployment