#!/bin/bash set -eu input=$1 output=$2 firstname () { local -r fullname=$1 local name=${fullname%% *} echo ${name,} } generate-parameters () { read fullname cat <

${fullname}

${instrument}

EOF while read line do if ! [[ ${line} =~ ([^:?]+[:?] )(.+) ]] then >&2 echo "Invalid line: ${line}" fi cat <
${BASH_REMATCH[1]}
${BASH_REMATCH[2]}
EOF done cat < EOF } ./build.sh <(generate-main < "${input}") \ <(generate-parameters < "${input}") \ "${output}"