Несколько советов по сокращению цикла:
export
не требуется. +=
- это сокращение для объединения. ${i:0:3}
можетбыть сокращенным до ${i::3}
. - Кавычки не нужны в правой части назначения.
(Лучше избегать всех имен переменных в верхнем регистре, поскольку они зарезервированыс помощью оболочки, поэтому я изменил APP_NAME
на appName
.)
appName=; for n in Release Enterprise Production; do appName+=${n::3}; done
Еще один способ сделать это - использовать grep -o
, чтобы сопоставить три символа в начале каждого слова и распечатать толькосоответствующие биты.
str="Release Enterprise Production"
egrep -o '\<...' <<< "$str" | tr -d '\n'
Или вы можете использовать Awk и циклически проходить над каждым полем.
awk '{for(i=1;i<=NF;++i) printf "%s",substr($i,0,3); print ""}' <<< "$str"