Кошмар вложенных цитат: отправка электронной почты с удаленного хоста

Вот функция, которую я собрал, которую вы можете использовать для печати элементов, связанных со справкой, по одному. Я использовал пример -m и длинную строку справки из вопроса. Функция жестко кодирует ширину 10 для первого столбца, затем вычисляет оставшееся пространство для столбца 2.

#!/bin/bash

function printhelp() (
  c1width=10
  cols=$(tput cols)
  c2width=$((cols - c1width - 1))
  readarray -t lines < <(printf '%s' "$2" | fmt -w $c2width)
  for((line=0; line < ${#lines[*]}; line++))
  do
    if [ $line -eq 0 ]
    then
      col1="$1"
    else
      col1=" "
    fi
    printf "%-${c1width}s %-${c2width}s\n" "$col1" "${lines[line]}"
  done
)

optf='-m'
optd='This is a very very very very very very very very very very very very very very very very very very very very long sentence'
printhelp "$optf" "$optd"

Пример вывода на экране с 50 столбцами:

-m         This is a very very very very very
           very very very very very very very
           very very very very very very very
           very long sentence

и на экране с 80 столбцами:

-m         This is a very very very very very very very very very very very
           very very very very very very very very very long sentence

и на экране из 130 столбцов:

-m         This is a very very very very very very very very very very very very very very very very very very very very
           long sentence

и на экране из 150 столбцов:

-m         This is a very very very very very very very very very very very very very very very very very very very very long sentence
2
28.09.2017, 19:56
0 ответов

Теги

Похожие вопросы