shellcat(1)

SHELLCAT(1) SHELLCAT(1)

NAME

shellcat - templating system with shell syntax

SYNOPSIS

shellcat [-s SHELL] TEMPLATE [ARG...]

shellcat {-h | --help | -v | --version}

DESCRIPTION

shellcat is a template processor, which uses shell script syntax. It can be used to produce static HTML pages, or pre-process any sort of text document.

OPTIONS

-s, --shell=SHELL
Use the specified shell. The default is /bin/sh.
-h, --help
Show help message and exit.
-v, --version
Show version information and exit.

TEMPLATE SYNTAX

text
Unless specified otherwise below, any text is echoed verbatim:

  $ cat ex1.sc
  Hello world!
  $ shellcat ex1.sc
  Hello world!
    
#!interpreter
If the first line of the template starts with #! characters, it is completely ignored. This allows for executable scripts with shellcat as interpreter:

  $ cat ex2.sc
  #!/usr/bin/shellcat
  Hello world!
  $ chmod +x ex2.sc
  $ ./ex2.sc
  Hello world!
    
<$ code $>
The code is executed by the shell:

  $ cat ex3.sc
  <$ for x in $(seq 3); do $>Hello world!
  <$ done $>
  $ shellcat ex3.sc
  Hello world!
  Hello world!
  Hello world!
    

Whitespace around code is strongly recommended, but not obligatory; see below however.

-$>
If used inside a code block, the $> sequence (with the leading minus sign omitted) is used in the shell code:

  $ cat ex4.sc
  <$ echo '-$> not closed yet' $>
  $ shellcat ex4.sc
  $> not closed yet
    
<$-
If used outside a code block, the <$ sequence (with the trailing minus sign omitted) is output:

  $ cat ex5.sc
  <$- not code $>
  $ shellcat ex5.sc
  <$ not code $>
    

ENVIRONMENT

The following environment variables are available for the processes spawned by shellcat:

SHELLCAT
name of the shellcat interpreter

Variables which existed in the environment are not modified, but left intact.

SEE ALSO

sh(1)

2025-07-26 shellcat 1.2.1