Я предполагаю, что вы хотите сделать это вbash
(или вы не будете использовать массив, чтобы начать с ).
$ echo "${Array[@]//__SingleQuote__/\'}"
Mary had a 'little' lamb
$ printf '%s\n' "${Array[@]//__SingleQuote__/\'}"
Mary
had a 'little'
lamb
$ ConvertedArray=( "${Array[@]//__SingleQuote__/\'}" )
$ printf '%s\n' "${ConvertedArray[@]}"
Mary
had a 'little'
lamb
В приведенном выше примере используется замена шаблона ${parameter//pattern/text}
для замены всех вхождений __SingleQuote__
одинарными кавычками. При применении к массиву операция выполняется над каждым элементом отдельно.
В оболочке POSIX, где у нас есть только один массив,$@
:
set -- "Mary" "had a __SingleQuote__little__SingleQuote__" "lamb"
i=0
while [ "$i" -ne "$#" ]; do
set -- "$@" "$( printf '%s\n' "$1" | sed "s/__SingleQuote__/'/g" )"
shift
i=$(( i + 1 ))
done
printf '%s\n' "$@"
При этом изменяется набор позиционных параметров путем подачи каждого отдельного параметра через sed
для преобразования строки-заполнителя в символ одинарной кавычки. Он модифицирует первый позиционный параметр и добавляет результат в конец $@
. Затем он сдвигает первый параметр из массива и повторяется до тех пор, пока не будут обработаны все элементы.
Вышеизложенное даст
Mary
had a 'little'
lamb
Это работает, но неудобно и неудобно. Mutt явно не готов иметь многострочную строку состояния.
set status_format="-%r-Mutt: %f [Msgs:%?M?%M/?%m%?n? New:%n?%?o? Old:%o?%?d? Del:%d?%?F? Flag:%F?%?t? Tag:%t?%?p? Post:%p?%?b? Inc:%b?%?l? %l?]---(%s/%S)\n%>-(%P)---"
Я тестировал mutt 1.13.5, 1.5.24 и neomutt 20200417. Обе протестированные версии mutt и даже neomutt не используют всю ширину последней (второй )строки.
Можно задать более 2 строк, но по умолчанию видны только первые две. Когда установлено status_on_top
, отображаются все строки, но закрывает индекс )
Заполнение вправо работает только в последней строке.
Он вмешивается в командную строку или в индекс , когда status_on_top
установлен (, что делает его непригодным для использования)
^Cl
привязку ), чтобы перерисовать окно после появления командной строки. Если вам нужно отобразить больше информации в строке состояния и, следовательно, вам нужно больше места:
%?n?New: %n?
-для отображения количества новых сообщений, только если они есть.