Bash Script Форматирование вывода "Использование"
Что такое хороший способ вывода текста справки для bash script для правильного выравнивания строк столбцов?
что-то вроде:
Usage: mycommand [options]
-h| --help this is some help text.
this is more help text.
-1|--first-option this is my first option
-2|--second-option this is my second option
Ответы
Ответ 1
Мне нравится использовать cat
для этого:
usage.sh:
#!/bin/bash
cat <<EOF
Usage: $0 [options]
-h| --help this is some help text.
this is more help text.
-1|--first-option this is my first option
-2|--second-option this is my second option
EOF
Это выведет:
Usage: usage.sh [options]
-h| --help this is some help text.
this is more help text.
-1|--first-option this is my first option
-2|--second-option this is my second option
Ответ 2
У Heredocs также есть вкладка с отступом. Это позволяет вам предисловие каждой строки кода с любым количеством вкладок - и они будут "съедены" на выходе, оставив вас оправданием. Обратите внимание, что конечный "EOF" (в этом примере) ДОЛЖЕН быть полностью оставлен с отступом - "EOF" не может иметь вкладку с отступом.
Будьте осторожны с любыми редакторами, которые преобразуют символы табуляции в пробелы (например, опция "vi" - это "expandtab", которая преобразует вкладки в пробелы). К сожалению, несколько пробелов не "съедаются", как вкладки. Если вы используете "expandtab" (или аналогичные параметры) для форматирования кода, то метод отступа вклада heredoc вряд ли будет вам полезен.
В приведенном ниже примере "< lt; -" является синтаксисом для heredoc для оценки отступов вкладки.
Пример:
cat <<-EOF
usage.sh [options]
-h| --help this is some help text.
this is more help text.
-1|--first-option this is my first option
-2|--second-option this is my second option
EOF
Обратите внимание, что перед "cat" есть "вкладки", а последующие строки - форматирование HTML здесь, скорее всего, не позволит вам вырезать-вставить пример.
Обратите внимание, что завершающий "EOF" остается оправданным.