# Bash Templater ## Variable Types All variables are used in the following format: ``` {#% VARIABLE_TYPE=data %#} ``` For example ``` {#% FILE=~/myfile.content %#} ``` - FILE - File will read the content from the given file if it exists - WRITE-TO - This is used to tell the current process where to write to, only one should exist in a template and sub-templates if multiple templates are chained together - TEMPLATE - This is used to parse the contents of another template and include the contents that are parsed. For example, say we have a primary template `main.tmpl` that uses the sub-template `sub.tmpl` then when the parsing process begins it will also parse the contents of `sub.tmpl` and append them to the contents parsed by `main.tmpl` - VAR - This is used when you want to expand a variable from your environment, say "${HOME}" - EVAL - This is used when you want to evaluate a statement in bash, be careful as any errors here can really nuke things and cause security issues. ## Example Given a template file with content like so: ``` {#% VAR=$HOME %#} {#% EVAL="ls -alh" %#} ``` The output would be something like ``` /home/username total 52K drwxr-xr-x 1 sam sam 196 Sep 15 17:03 . drwxr-xr-x 1 sam sam 94 Sep 15 16:42 .. -rwxr-xr-x 1 sam sam 13K Sep 15 17:01 Templater.bash -rw-r--r-- 1 sam sam 1.1K Sep 15 17:03 Templater.md ```