Вы можете использовать собственные расширения параметров оболочки, чтобы обрезать начальные и конечные компоненты:
for envCode in "$envA" "$envB"; do
t=${envCode#*--}
printf '%s\n' "${t%-*}"
done
staging
sandbox
Вы можете использовать ##
, %%
, если хотите удалить самое длинное , а не самое короткое начальное и конечное совпадения -, из ваших примеров неясно, какие требуется для.
См., например, BashGuide :Расширение параметра