O Bash tem uma opção para diagnosticar (e opcionalmente abortar a execução) variáveis "expandidas para valor vazio"?
Exemplo (hipotético):
$ bash -c 'echo $x' --xxx
bash: line 1: variable 'x' expanded to empty value
Motivo da pergunta: essa opção pode ser útil ao depurar scripts.
Por exemplo, em alguns scripts, espera-se que todas as variáveis se expandam para valores não vazios. Portanto, usar uma opção para detectar (e opcionalmente abortar a execução) variáveis "expandidas para valores vazios" pode ser útil para esse caso.
Já procurei por essa opção no set
builtin , mas não encontrei nada.
Todos os shells sh podem tornar o acesso a variáveis não definidas um erro, executando
O erro faz com que o shell saia com um status diferente de zero. Quando o erro ocorre em um subshell, somente esse subshell sai, e cabe ao código de chamada propagar o erro se ele quiser.
Exemplo:
Não acho que haja nenhuma maneira de aplicar isso a variáveis que são definidas para um valor vazio. Esse é um requisito estranho. O que há de especial na string vazia que a torna menos boa do que qualquer string não vazia?