документирование параметров сценариев оболочки

Попробуйте и посмотрите, хотите ли вы этого?

ggplot(data=df, aes(x=Var1, y=Freq)) +
   geom_bar(stat="identity")
41
задан AnC 26 March 2009 в 22:21
поделиться

5 ответов

Традиционно Вы документируете свои аргументы в использовании () функция:

#!/bin/bash

programname=$0

function usage {
    echo "usage: $programname [-abch] [-f infile] [-o outfile]"
    echo "  -a      turn on feature a"
    echo "  -b      turn on feature b"
    echo "  -c      turn on feature c"
    echo "  -h      display help"
    echo "  -f infile   specify input file infile"
    echo "  -o outfile  specify output file outfile"
    exit 1
}

usage
39
ответ дан Chas. Owens 27 November 2019 в 00:25
поделиться

Я обычно переношу свое использование в функцию, таким образом, я могу назвать его от-h параметрического усилителя и т.д.

#!/bin/bash
usage() {
    cat <<EOM
    Usage:
    $(basename $0) Explain options here

EOM
    exit 0
}

[ -z $1 ] && { usage; }
21
ответ дан Eddy 27 November 2019 в 00:25
поделиться

IDE удара Vim, который делает это:

#!/bin/bash
#===============================================================================
#
#          FILE:  test.sh
#
#         USAGE:  ./test.sh
#
#   DESCRIPTION:
#
#       OPTIONS:  ---
#  REQUIREMENTS:  ---
#          BUGS:  ---
#         NOTES:  ---
#        AUTHOR:  Joe Brockmeier, jzb@zonker.net
#       COMPANY:  Dissociated Press
#       VERSION:  1.0
#       CREATED:  05/25/2007 10:31:01 PM MDT
#      REVISION:  ---
#===============================================================================
11
ответ дан John Ellinwood 27 November 2019 в 00:25
поделиться

Я записал бы:

Usage: `basename $0` [option1]|[option2] param1
  Options:
   - option1:  .....
   - option2:  .....
  Parameters:
   - param1:   ..... 

Попытайтесь посмотреть на способ, которым справка отформатирована для стандартных утилит UNIX (ls - справка, например)

3
ответ дан Varkhan 27 November 2019 в 00:25
поделиться

Я рекомендовал бы заставить Ваш сценарий автоматически распечатать использование (если бы это не должно быть выполнено без аргументов):

#!/usr/bin/env bash

if [ $# == 0 ]; then
    echo "Usage: $0 param1 [param2]"
    echo "* param1: <description>"
    echo "* param2: <description>"
fi
3
ответ дан rmmh 27 November 2019 в 00:25
поделиться