#!/bin/dash -vx trim() { # remove leading whitespace characters __trim="${*#${*%%[![:space:]]*}}" # remove trailing whitespace characters printf "%s" "${__trim%${__trim##*[![:space:]]}}" } trim " alpha" | od -t x1a trim "beta " | od -t x1a trim " gamma " | od -t x1a trim2() { # remove leading whitespace characters __trim="${*##[[:space:]]}" # remove trailing whitespace characters printf "%s" "${__trim%%[[:space:]]}" } trim2 " alpha" | od -t x1a trim2 "beta " | od -t x1a trim2 " gamma " | od -t x1a trim3() { _space="$(echo -n '[\b\t\n\v\f\r ]')" # remove leading whitespace characters __trim="${*##$_space}" # remove trailing whitespace characters printf "%s" "${__trim%%$_space}" } trim3 " alpha" | od -t x1a trim3 "beta " | od -t x1a trim3 " gamma " | od -t x1a