Como eu imprimo hífens se uma variável estiver vazia?

2

Estou coletando informações do sistema Windows usando wmic no sistema Linux. Para isso, faço várias chamadas wmic e sua saída é armazenada em algumas variáveis. Depois que os dados necessários são coletados, eu echo dessas variáveis, separadas por dois pontos, em um arquivo.

Mas, o problema surge quando uma variável armazena o valor 'null', já que ele não exibe nada além de dois dois pontos consecutivos.

Como printf pode ser utilizado para exibir um 'hífen' sempre que houver um valor nulo armazenado em uma variável?

    
por Mandar Shinde 14.01.2015 / 12:09

1 resposta

6

Você pode usar esta sintaxe:

"${var:-word}"

Isso substituirá o valor da variável $var se estiver definido e não vazio e, se não, substituirá o que for dado como word . Por exemplo:

$ var=foo
$ echo "${var:-bar}"
foo
$ var=
$ echo "${var:-bar}"
bar

Então, no seu caso específico, você pode usar:

echo "${var:--}"

Ou mais seguro e mais portátil :

printf '%s\n' "${var:--}"
    
por 14.01.2015 / 13:25