processando opções da linha de comando

Uma boa forma de implementar tratamento de opções fornecidas na linha de comando em shell script é usando getopts:

usage() {
    echo "Script para backup"
    echo "$(basename $0) opções"
    echo "-v verbose mode"
    echo "-a backup total"
    echo "-d backup apenas dos dados do servidor de arquivos"
    echo "-m DATABASE backup da base DATABASE do mysql"
    echo "-z DOMINIO backup do arquivo de zona do DOMINIO"
    echo "-h descrição de uso"
    exit
}

while getopts 'vadhm:z:' opcao
do
    case ${opcao} in
        v)  VERBOSE="-v"
            ;;
        a)  WHATBAK="all"
            ;;
        d)  WHATBAK="dados"
            ;;
        m)  WHATBAK="mysql"
            DBTARGET=${OPTARG}
            ;;
        z)  WHATBAK="zona"
            ZNTARGET=${OPTARG}
            ;;
        h)  usage
            ;;
        ?)  echo "Erro. Parâmetro incorreto."
            usage
            ;;
    esac
done

Na linha:
while getopts 'vadhm:z:' opcao

temos as opções que serão aceitas. Opções seguidas de : requerem argumento adicional (obtido via ${OPTARG}). E o ? trata os argumentos inválidos.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: