Вот вариант вашего исходного метода, но с использованием массивов bash. Обратите внимание, что нет необходимости сохранять восстановление разделителя полей - вы можете просто назначить временное значение, когда read строка
#!/bin/bash
# create a map (lookup table) from items to values
declare -A values=( [hat]=1 [shirt]=2 [trousers]=4 )
# (an ASSOCIATIVE array)
my_outfit='hat+shirt+trousers'
# convert the string to a simple (INDEXED) array
IFS=+ read -r -a my_items <<< "$my_outfit"
# loop over the array of items, looking up and summing the values
outfit_value=0
for item in "${my_items[@]}"; do
((outfit_value += values[$item]))
done
printf 'OUTFIT VALUE is %s\n' "$outfit_value"
Короткий ответ: Да, это так.
Длинный ответ: прочитайте лицензию, особенно часть «Разрешение и условия».
Эта лицензия позволяет лицензионным шрифтам быть использовать, изучать, модифицировать и перераспределять свободно. Шрифты, включая любые производные работы, могут быть объединены, внедрены и перераспределены при условии соблюдения условий этой лицензии. Однако шрифты и деривативы не могут быть выпущены под любую другую лицензию.Короткий ответ: Да, это так.
Длинный ответ: прочитайте лицензию, особенно часть «Разрешение и условия».
Эта лицензия позволяет лицензионным шрифтам быть использовать, изучать, модифицировать и перераспределять свободно. Шрифты, включая любые производные работы, могут быть объединены, внедрены и перераспределены при условии соблюдения условий этой лицензии. Однако шрифты и деривативы не могут быть выпущены под любую другую лицензию.