basum control statment para quando um sinalizador de opção é usado

1

Eu estou tentando fazer uma declaração de controle para verificar se um sinalizador de opção é usado ou não? Para -o output.file se for usado gostaria de fazer igual a variável OUTPUTSUM = OUTPUTFILE e se não houver opção -o use então eu tenho como padrão o caminho relativo do script? Eu só não tenho certeza sobre como verificar a opção -o?

código PSEUDO

while getopts i:o:h OPTION
do
     case $OPTION in
         i)
             INPUTFILE=$OPTARG
             ;;
     o)
         OUTPUTFILE=$OPTARG
             ;;
         h)
             usage
         exit 1
             ;;
         ?)
             usage
             exit
             ;;
     esac
done

if [-o EXIST]; then

    OUTPUTSUM = OUTPUTFILE
else
   OUTPUTSUM = $SCRIPTPATH/SUMMARY
fi
    
por MAXGEN 26.02.2014 / 21:26

1 resposta

3

bash expansão do parâmetro : use o valor padrão se a variável não estiver definida ou nulo:

outputsum=${outputfile:-"$scriptpath/SUMMARY"}

Saia do hábito de usar $ALL_CAPS_VARNAMES - um dia você usará "PATH" e quebrará seu script.

    
por 26.02.2014 / 21:44

Tags