Aqui está o meu arquivo de exemplo:
!/bin/bash
# argument-one
# Is first argument missing?
# First method
[[ "$1" == "" ]] && echo "Usage: $(basename $0) filename"; exit 1
# Second method
# filename=${1?"Usage: $(basename $0) filename"}
No script acima, recebo uma mensagem "limpa"
Usage: argument-one filename
quando executo o script acima sem argumentos; e sai de forma limpa.
No entanto, se eu comentar a linha 7 e remover o comentário da linha 10, recebo esta mensagem de erro quando o programa sai:
./argument-one: line 10: 5: Usage: argument-one filename
Esta mensagem sugere que há algo errado com o programa que o acionou para sair, quando, na verdade, era uma chamada sem argumentos, o que é um problema de uso.
Mas a linha 10 é preferível porque é mais concisa e também atribui uma variável, se disponível.
Minha pergunta é: "Como manter apenas a parte da mensagem e filtrar ou desativar a parte ./argument-one: line 10: 5:
da mensagem de uso?
Obrigado.