#!/usr/bin/env bash cd "${0%/*}" || exit 1 . ../run-tests export name=Willy MO_ALLOW_FUNCTION_ARGUMENTS=true pipeTo() { cat | "$1" } testArgs() { printf "%d" "$#" # Display all arguments printf " %q" ${@+"$@"} } template() { cat <<EOF No args: {{testArgs}} - done One arg: {{testArgs 'one'}} - done Getting name in a string: {{testArgs {"The name is " name}}} - done Reverse this: {{#pipeTo "rev"}}abcde{{/pipeTo "rev"}} EOF } expected() { cat <<EOF No args: 0 '' - done One arg: 1 one - done Getting name in a string: 1 The\ name\ is\ Willy - done Reverse this: edcba EOF } runTest