É possível modificar a mensagem de erro disparada pela expansão do parâmetro usando o formato “$ {pattern:? word}”?

3

Suponha que eu tenha o seguinte script chamado test.sh :

#! /bin/sh -
printf '%s\n' "${1:?empty or missing argument}"

Quando executado sem argumentos de linha de comando, ele se comporta assim:

$ ./test.sh
./test.sh: 2: ./test.sh: 1: empty or missing argument

Pergunta: É possível alterar a parte "./ test.sh: 2:" da mensagem de erro?

    
por Mateusz Piotrowski 21.08.2017 / 23:39

1 resposta

2

A resposta para sua pergunta é "não"; usar essa sintaxe deve gerar o script, o número da linha e a variável referenciada ao erro padrão, conforme descrito por você. Se você quiser alterar isso, canalize o erro padrão em um processo para massagear o formato desejado em um script que, por sua vez, executa o script que gera a mensagem de erro.

    
por 22.08.2017 / 00:22

Tags