Возможно ли объединить две или более функции манипуляции со строками переменной в BASH (или любой другой стандартной команде Linux)?
Скажем, например. У меня есть переменная $XDG_CURRENT_DESKTOP
, которая содержит строку ubuntu:GNOME
.
Теперь я могу получить вторую подстроку с помощью ${XDG_CURRENT_DESKTOP##*:}
→ GNOME
.
Я также могу получить строчную строку через ${XDG_CURRENT_DESKTOP,,}
→ ubuntu:gnome
.
Но как мне объединить обе функции (→ gnome
) в одну – простую – команду без использования перенаправления на sed
, awk
, grep
или любая другая из этих — достаточно тяжеловесных — команд и без дополнительного шага сохранения буфера? например:
local mybuffer="${XDG_CURRENT_DESKTOP##*:}"
echo "${mybuffer,,}"
Я хочу избежать такого «индекса» или конструкции вызова функции для достижения этой цели, и я уже пробовал любую комбинацию обоих упомянутых, но это кажется бесполезным.
Есть ли другой способ?
Или мне нужно обновить bash? (используя: GNU bash 4.3.11)
Или это может сделать любая другая оболочка?