次のヘルプセクションを作成しました。
-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
持ちたい
-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つの列が欲しいと指定しますか?
ベストアンサー1
以下は、ヘルプ関連項目を一度に1つずつ印刷するために使用できる機能です。-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