trim () удаляет пробелы (и вкладки, непечатаемые символы; для простоты я рассматриваю только пробелы). Моя версия решения:
var="$(hg st -R "$path")" # I often like to enclose shell output in double quotes
var="$(echo "${var}" | sed "s/\(^ *\| *\$\)//g")" # This is my suggestion
if [ -n "$var" ]; then
echo "[${var}]"
fi
Команда «sed» обрезает только начальные и конечные пробелы, но она также может быть передана первой команде, что приводит к:
var="$(hg st -R "$path" | sed "s/\(^ *\| *\$\)//g")"
if [ -n "$var" ]; then
echo "[${var}]"
fi